将结果集放入临时表

时间:2011-10-07 17:47:39

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

我有一个名为Insert的过程,代码如下:

Create procedure Gen_insert
As
BEGIN


create table #temp
 ( insert_stmt varchar(max) ) 
 insert into #temp  
EXEC Generate_Insert @Table = 'Admin'

 insert into #temp  
EXEC Generate_Insert @Table = 'Impas'

 insert into #temp 
 EXEC Generate_Insert @Table = 'Asui'

 insert into #temp 
 EXEC Generate_Insert @Table = 'Alstd'  

select * from #temp 

End

当我执行它时,我收到以下错误:

Msg 8164, Level 16, State 1, Procedure Gen_Insert, Line 73
An INSERT EXEC statement cannot be nested.

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:4)

An INSERT EXEC statement cannot be nested.错误信息非常清楚。你正在嵌套INSERT ... EXEC。声明。您调用的过程(Generate_Insert)再次使用INSERT ... EXEC或insert过程的调用者在INSERT ... EXEC中使用它。只有你能找到这种情况。根据经验,应该避免使用INSERT ... EXEC,因为this and other problems