L'exécution d'une Fonction Table à partir d'une Procédure Stockée avec plusieurs Paramètres de la Table étant passé à travers?
J'ai une procédure stockée qui exécute du code répétitif, j'ai donc décidé de faire le code redondant dans une fonction table. Le problème que je rencontre est:
Msg 137, Level 16, State 1, Procedure Search, Line 98
Must declare the scalar variable "@myTVP".
Un exemple simple de 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 aucune indication, ce serait merveilleux!
(Il y a un couple de plus d'erreurs si vous essayez d'exécuter cet exemple, mais ils proviennent de l'erreur inclus. Le problème est que la procédure stockée de Recherche ne peut pas être créé.
Merci.
OriginalL'auteur Brett | 2010-09-27
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne pour moi. (Ajouté quelques
Go
lot de séparateurs et supprimé les crochets de l'appel de procédure stockée)Si cela ne fonctionne pas pour vous, quel est le niveau de compatibilité de votre base de données?
OriginalL'auteur Martin Smith