2009-04-21 8 views
0

Hallo alle ich bin auf der Suche nach einer Möglichkeit, in einer generierten ID von einem Sproc zu einem anderen Sproc übergeben.Wie bekomme ich Identität von einem Sproc und übergebe es an einen anderen Sproc?

heißt

@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 

Gibt es eine Möglichkeit, dies in SQL Server zu tun?

Dank

Antwort

1

Verwenden Sie eine Ausgangsgröße

so würden Sie die vorherige Prozedur wie

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

Und denken Sie daran erklären, OUTPUT angegeben werden muss sowohl bei der Deklaration und Zuweisung der Parameter dh.

Exec someproc @parm1, @parm2, @id OUTPUT 

Alternativ können Sie eine lokale Variable verwenden, um das Ergebnis

zum Beispiel zu halten

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

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

Dank cmsjr. Ich werde es versuchen! – AlteredConcept

+0

np, lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben. – cmsjr

Verwandte Themen