2009-04-21 31 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

相关问题