您的位置:首页 > 其它

存储过程中调用另一个存储过程的结果集

2006-05-25 10:58 288 查看
在一个存储过程中把另一个存储过程当一个表来使用,在sql server中不支持直接从from后接存储过程。这个时候我们可以利用临时表来实现。

举例:

SELECT ID, RoleId, RoleType into #TempPurviewTableContainer FROM SystemPurview  WHERE 1=0

INSERT #TempPurviewTableContainer exec PManage_GetPurview @Type,@Id

select * from #TempPurviewTableContainer

需要注意的是,这种方法不能嵌套。例如:

procedure a
begin
...
insert #table exec b
end

procedure b
begin
...
insert #table exec c
select * from #table
end

procedure c
begin
...
select * from sometable
end

这里a调b的结果集,而b中也有这样的应用b调了c的结果集,这是不允许的,会报“INSERT EXEC 语句不能嵌套”错误。在实际应用中要避免这类应用的发生。如果谁有好的解决方法,请留言!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: