J'ai une procédure dbo.pX
qui renvoie une table avec 1 champ nommé id
et un INT
, qui peut être égal à 0, ou un autre entier positif. Je dois insérer cette id
dans une variable dans une procédure appelée dbo.pY
, afin de vérifier si le id
est supérieur à 0.Comment insérer un champ d'un résultat de procédure dans une variable?
Procédure dbo.pX
:
CREATE PROCEDURE dbo.pX
@param1 VARCHAR(30)
AS
DECLARE @id INT;
-- Some code to change the @id
SELECT @id AS 'id';
GO
Ce que j'ai essayé de faire en dbo.pY
:
CREATE PROCEDURE dbo.pY
@param1 VARCHAR(30)
AS
DECLARE @ret INT;
SET @ret = (EXECUTE dbo.pX 'something');
IF (@ret > 0) BEGIN
-- Some code that uses @ret
END
GO
Des conseils ou astuces pour m'aider à trouver un moyen de le résoudre? Observer: Je ne peux pas modifier la procédure dbo.pX
.
soit vous utilisez un scalaire fonction à retourner ou un script stocké avec l'option de sortie – maSTAShuFu
Procédure stockée Paramètres de sortie: https://technet.microsoft.com/en-us/library/ms187004(v=sql.105).aspx. INSERT INTO EXEC: https://stackoverflow.com/questions/12686175/sql-server-insert-into-execute-statement – Alex
INSERT INTO m'a aidé à atteindre la solution, merci :) –