Sie können benutzerdefinierte Tabellentypen verwenden, um Ihr Problem zu lösen.
Sie erstellen einfach eine Tabellenvariable wie
CREATE TYPE [dbo].[yourTypeName] AS TABLE(
[columeName1] [int] NULL,
[columeName2] [varchar](500) NULL,
[columeName3] [varchar](1000) NULL
)
GO
und Sie können diese Tabellenvariable in Ihrer Funktion wie
deklarieren CREATE FUNCTION [dbo].[yourFunctionName]
(
@fnVariable1 INT ,
@yourTypeNameVariable yourTypeName READONLY
)
RETURNS VARCHAR(8000)
AS
BEGIN
SELECT .................
FROM @yourTypeNameVariable
WHERE ........
RETURN @r
END
In Ihrer Prozedur können Sie Ihren Tabellentyp wie
deklarierenDECLARE @yourTypeNamevaribale AS yourTypeName
Und Sie können Werte wie
in diese Tabelle einfügeninsert into @yourTypeNamevaribale (col,col,..)values(val,val,..)
Übergeben Sie dies an Ihre Funktion wie
dbo.yourFunctionName(fnVariable1 ,@yourTypeNamevaribale )
Bitte entscheiden Sie sich für diese Methode, danke