大家好我正在寻找一种方法将生成的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中执行此操作?
由于
答案 0 :(得分:1)
使用输出变量
所以你要声明前面的过程如
Create proc SomeProc (@parm1 int, @parm2 int, @id int = null OUTPUT)
as
Begin
...do some insert
select @id = scope_identity()
End
请记住,在声明和分配参数时必须同时指定OUTPUT 即
Exec someproc @parm1, @parm2, @id OUTPUT
或者,您可以使用局部变量来保存结果
e.g。
create proc somesample(@in int)
as
Begin
select @in * 2
End
declare @var int
exec @var = somesample 1
print @var
2