Вы можете использовать пользовательский тип таблицы для решения вашей проблемы.
Вы просто создаете табличную переменную, например
CREATE TYPE [dbo].[yourTypeName] AS TABLE(
[columeName1] [int] NULL,
[columeName2] [varchar](500) NULL,
[columeName3] [varchar](1000) NULL
)
GO
, и вы можете объявить эту табличную переменную в своей функции как * 1006.*
CREATE FUNCTION [dbo].[yourFunctionName]
(
@fnVariable1 INT ,
@yourTypeNameVariable yourTypeName READONLY
)
RETURNS VARCHAR(8000)
AS
BEGIN
SELECT .................
FROM @yourTypeNameVariable
WHERE ........
RETURN @r
END
В вашей процедуре вы можете объявить тип вашей таблицы как
DECLARE @yourTypeNamevaribale AS yourTypeName
И вы можете вставить значения в эту таблицу как
insert into @yourTypeNamevaribale (col,col,..)values(val,val,..)
передать это вашей функции как
dbo.yourFunctionName(fnVariable1 ,@yourTypeNamevaribale )
пожалуйста, используйте этот метод, спасибо