Si vous essayez d'exécuter du code ci-dessous, cela ne fonctionne pas, comment puis-je le corriger?Comment appeler un Proc stocké dans une instruction Select (SQL Server 2012)
SELECT Number_ID, EXEC dbo.UselessStoredProc @inputNum=Number_ID as ModifiedNumber
FROM [TestDb].[dbo].[Numbers]
procédure stockée ressemble à ceci et fonctionne si appelé séparément:
CREATE PROCEDURE dbo.UselessStoredProc @inputNum int
AS
SELECT 'lol my number is: ' + CONVERT(varchar(max), @inputNum)
GO
--TEST
EXEC dbo.UselessStoredProc @inputNum=2;
Je ne doivent exécuter le proc stocké, pas obtenir la valeur en ligne. Le code est juste un exemple.
si je besoin de mon proc stocké pour appeler un proc stocké, par exemple exécuter un SQL dynamique pour obtenir la colonne de clé primaire d'une table, par ex. '' SELECT @Data_Table_Key = COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE O OBJ OBJECTPROPERTY (OBJECT_ID (CONSTRAINT_SCHEMA + ''. '' + QUOTENAME (CONSTRAINT_NAME)), '' IsPrimaryKey '') = 1 ET TABLE_NAME = '' '+ @Data_Table_Name +' ' '' 'C'est ma raison de ne pas utiliser une fonction. – VSO
Je suppose que je ne comprends pas la fonction «table valorisée» - puis-je appeler des processus stockés? Pourtant, non, bon @SqlZim? – VSO
@VSO Si vous exécutez SQL dynamique dans une procédure et que vous souhaitez parcourir un ensemble de valeurs et exécuter la procédure pour chaque valeur, c'est exactement ce que vous devez faire. Utilisez une boucle 'while', ou' cursor' pour exécuter la procédure stockée pour chaque valeur. - S'il vous plaît poster des exemples pertinents de code la prochaine fois – SqlZim