无法将存储过程结果集加载到SQL Server中的临时表中

时间:2017-05-18 13:30:15

标签: sql sql-server stored-procedures sql-server-2012

我正在尝试将存储过程结果集加载到临时表中,但数据未加载到临时表中。存储过程结果不会存储到临时表中。它显示" 0行受影响"。

示例#1:

haishoku

示例#@:

EXEC dbo.emp

(10 row(s) affected)

10行未加载到临时表中。

我试过这样:

insert into #tempemp
    EXEC dbo.emp

(0 row(s) affected)

但我只收到错误:

  

Msg 11536,Level 16,State 1,Line 1
  EXECUTE语句失败,因为它指定了WITH RESULT SETS子句   1个结果集,但该语句仅在运行时发送了0个结果集   时间。

但存储过程只返回一个结果集。

任何人都可以帮忙吗?

感谢。

2 个答案:

答案 0 :(得分:0)

如果要进行测试,它应该在同一个对象上。我们没有人拥有你的SP,但我知道我有这个,它在我的结局上运作得很好:

CREATE PROCEDURE DUCKLING AS BEGIN SELECT 1 END

CREATE TABLE #TEMP (ID INT)

INSERT INTO #TEMP EXEC DUCKLING

SELECT * FROM #TEMP

所以也许你可以尝试一下,和/或提供你的SP代码。替代SP(如DUCKLING)是否有效将有助于我们缩小问题发生的范围。

答案 1 :(得分:0)

我不能简单评论,因为我是一个菜鸟。

在我看来,好像你期待来自exec dbo.emp的输出。我看到(10)行,但我希望你会在select语句中收到类似的结果。

您可能只需要在dbo.emp的末尾放置一个select语句来将所有内容转储出来,然后您的Insert应该按预期工作。