2009-04-21 7 views
0

Bonjour à tous, je cherche un moyen de passer un identifiant généré d'un sproc à un autre sproc.Comment puis-je obtenir l'identité d'un sproc et le transmettre à un autre sproc?

à savoir

@name varchar(12), 
@descript varchar(55) 
@test_date date, 
@test_result varchar(1) 
BEGIN 
    EXEC ts_create_item @name, @descript 
END 
if (@test_date is not null) or (isnull(@test_result_id,'')!='') 
BEGIN 
    Exec ts_update_test_results @itemid(generated from the sproc before), @test_date, @test_result 
End 

Est-il possible de le faire dans le serveur SQL?

Merci

Répondre

1

Utilisez une sortie variable

donc vous déclarer la précédente proc comme

Create proc SomeProc (@parm1 int, @parm2 int, @id int = null OUTPUT) 
as 
Begin 
    ...do some insert 
    select @id = scope_identity() 
End 

Et rappelez-vous, sortie doit être spécifié à la fois lors de la déclaration et l'attribution du paramètre ie.

Exec someproc @parm1, @parm2, @id OUTPUT 

vous pouvez utiliser alternativement une variable locale pour tenir le résultat

par exemple

create proc somesample(@in int) 
as 
Begin 
    select @in * 2 
End 

declare @var int 
exec @var = somesample 1 
print @var 
2 
+0

Merci cmsjr. Je vais essayer ça! – AlteredConcept

+0

np, laissez-moi savoir si vous avez des problèmes. – cmsjr

Questions connexes