日期:2014-05-18  浏览次数:20470 次

在存储过程种用EXEC执行一个存储过程
这个存储过程有两个参数。一个是入参,一个是出参

入参可以用 select 参数1 from tb1 中 select出来的很多记录么??针对每条记录 EXEC一次。

EXEC sp1 select 参数1 from tb1, 参数2 out

这样??

------解决方案--------------------
这样建议使用FUNCTION来实现。
------解决方案--------------------
看楼主的意思,貌似入参是个表记录,那就用表变量好了:
SQL code

表类型: 
创建一个表类型,以后在定义表变量的时候,就可以直接使用该表类型。
创建表类型:
create type dbo.OrderTotalsByYear as table
(
    orderyear int not null primary key,
    qty int not null
)
定义一个表变量直接使用表类型:
declare @MyOrderTotalsByYear as dbo.OrderTotalsByYear
insert into @MyOrderTotalsByYear (orderyear,qty)
select YEAR(a.orderdate) as orderyear,SUM(b.qty) as qty from sales.Orders a inner join sales.OrderDetails b on a.orderid=b.orderid group by YEAR(a.orderdate)
select * from @MyOrderTotalsByYear

exec 存储过程 @MyOrderTotalsByYear

------解决方案--------------------
还可以用这种方法 在代码里 将数据查询出来 然后遍历那个结果 再拼接成一个sql 语句
拼接成 exec 存储过程 a,b;exec 存储过程 a,b;exec 存储过程 a,b;.....