J'ai une procédure stockée qui exécute du code répétitif, j'ai donc décidé de transformer le code redondant en une fonction table. Le problème que je rencontre est:Exécution d'une fonction de table à partir d'une procédure stockée avec plusieurs paramètres évalués par table en cours de transmission?
Msg 137, Level 16, State 1, Procedure Search, Line 98
Must declare the scalar variable "@myTVP".
Un exemple simple du code SQL que j'utilise est:
CREATE TYPE [dbo].textTable_type AS TABLE(
[text] [nvarchar] (36)
)
CREATE FUNCTION dbo.Search_fn
(@myTVP AS textTable_type READONLY)
RETURNS TABLE
AS
RETURN
( SELECT * from @myTVP )
GO
CREATE PROCEDURE [dbo].[Search]
@myTVP AS textTable_type READONLY
AS
BEGIN
SELECT * FROM dbo.Search_fn(@myTVP)
END
GO
DECLARE @TVP as textTable_type
INSERT INTO @TVP VALUES ('abc')
INSERT INTO @TVP VALUES ('123')
exec dbo.Search(@myTVP = @TVP)
GO
DROP FUNCTION Search_fn
DROP PROCEDURE Search
Si quelqu'un peut fournir une idée, ce serait merveilleux!
(Il y a quelques erreurs supplémentaires si vous essayez d'exécuter cet exemple, mais ils proviennent de l'erreur inclus. Le problème est que la recherche de procédure stockée ne peut pas être créé.
Merci.
Je suppose que parce que mon niveau de compatibilité est 80, ça ne va pas fonctionner. – Brett