2011-05-10 106 views
-1

我想使用一个包含两个不同的光标作为表输入像这样一个存储过程:插入到表从存储过程

INSERT INTO table1 EXEC * FROM tblDailySales 

存储的过程包含两个光标 - 我不只是使用运行。

我得到以下错误:

​​

我也得到这个错误

An INSERT EXEC statement cannot be nested

存储的过程中没有EXEC,我可以看到。

除了简单的SELECT之外,还可以使用什么样的存储过程作为表格的来源?

+0

什么DBMS系统? – Rob 2011-05-10 18:44:31

+0

为什么你要用游标开始呢?游标不是推荐的插入方式。 – HLGEM 2011-05-10 21:29:38

回答

1

table1是否已定义?如果是的话你应该做的是

INSERT INTO table1 
EXEC storedProcedureName 

现在,问题是,存储过程只能返回一个结果集,并插入到表中。

如果您需要插入两个不同的结果集,则必须先收集两个不同的存储过程,然后运行两个INSERT语句。

如果您必须一次执行这些操作,则需要在存储过程中执行插入操作。

+0

是的,表1已经定义。只有一个结果集被返回。这些错误表明游标无法找到。 – dave 2011-05-10 19:30:35

+0

哦,另外,有一位可能是麻烦真正原因的执行官。 – dave 2011-05-10 19:31:29