存储过程的互相调用
在一个存储过程中把另一个存储过程当一个表来使用,在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 语句不能嵌套”错误。在实际应用中要避免这类应用的发生。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 什么时候要用存储过程
- 下一篇: MFC---ADO 调用存储过程
