2009-04-21 82 views
0

大家好,我正在尋找一種方式來傳遞生成的ID從一個存儲過程到另一個存儲過程。如何從一個sproc獲取身份並將其傳遞給另一個sproc?

@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 

有沒有辦法在SQL Server中做到這一點?

感謝

回答

1

使用可變

,所以你會宣稱先前的PROC像

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

記住輸出,輸出有兩個聲明和分配參數 即當被指定。

Exec someproc @parm1, @parm2, @id OUTPUT 

或者您可以使用一個局部變量來保存結果

例如

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

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

謝謝cmsjr。我會試試這個! – AlteredConcept 2009-04-21 14:24:15

相關問題