Vous pouvez utiliser le type de tableau défini par l'utilisateur pour résoudre votre problème.
Vous venez de créer une variable de table comme
CREATE TYPE [dbo].[yourTypeName] AS TABLE(
[columeName1] [int] NULL,
[columeName2] [varchar](500) NULL,
[columeName3] [varchar](1000) NULL
)
GO
et vous pouvez déclarer cette variable de table dans votre fonction comme
CREATE FUNCTION [dbo].[yourFunctionName]
(
@fnVariable1 INT ,
@yourTypeNameVariable yourTypeName READONLY
)
RETURNS VARCHAR(8000)
AS
BEGIN
SELECT .................
FROM @yourTypeNameVariable
WHERE ........
RETURN @r
END
Sur votre procédure, vous pouvez déclarer votre type de table comme
DECLARE @yourTypeNamevaribale AS yourTypeName
Et vous pouvez insérer des valeurs dans ce tableau comme
insert into @yourTypeNamevaribale (col,col,..)values(val,val,..)
passez ceci à votre fonction comme
dbo.yourFunctionName(fnVariable1 ,@yourTypeNamevaribale )
s'il vous plaît, optez pour cette méthode, merci