从另一个过程调用时将参数值传递给存储过程

时间:2015-06-09 16:26:13

标签: sql sql-server-2008 stored-procedures

我有一个存储过程sp1,它接受参数@id int,@ type int,@ orderno int

现在,我正在尝试从sp2调用sp1

alter proc sp2
/insert into @temp_tbl exec sp1 1,2,3
set @select = 'select * from @temp_tbl'  --@select is already declared
exec (@select)

现在我试着打电话给我的sp2

exec sp2

我收到错误:程序或功能' sp1'期望参数@id,这是未提供的。那么,我该如何传递参数??

1 个答案:

答案 0 :(得分:0)

简单,例如:

SortedMap<TypeOfYourField, YourClass>

但你显然需要传递值(可能来自其他参数等)。

insert into @temp_tbl exec sp1 @id=1, @type=2, @orderno=3

所以,一个更完整的例子:

DECLARE @OrderNoSource INT = 33;
insert into @temp_tbl exec sp1 @id=1, @type=2, @orderno=@OrderNoSource;