【发布时间】:2017-05-18 13:30:15
【问题描述】:
我正在尝试将存储过程结果集加载到临时表中,但数据未加载到临时表中。存储过程结果不存储到临时表中。它显示“0 行受影响”。
示例 #1:
EXEC dbo.emp
(10 row(s) affected)
示例#@:
insert into #tempemp
EXEC dbo.emp
(0 row(s) affected)
10 行未加载到临时表中。
我试过这样:
insert into #tempemp
EXEC sp_executesql @tsql = N'EXEC(''EXEC dbo.emp '')
with RESULT SETS
(
(
EMPID varchar(100)
,EMPName VARCHAR(100)
,EMPCode VARCHAR(7)
,EMPNumber VARCHAR(20)
,[STATE] VARCHAR(50)
,City VARCHAR(50)
,Zip VARCHAR(20)
,CustomerTypeName VARCHAR(100)
,StatusCD VARCHAR(50)
,FilterCode VARCHAR(100)
)
)'
但我只得到一个错误:
消息 11536,第 16 级,状态 1,第 1 行
EXECUTE 语句失败,因为它指定了 WITH RESULT SETS 子句 1 个结果集,但语句在运行时只发送了 0 个结果集 时间。
但存储过程只返回一个结果集。
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
我假设您在运行语句之前创建了临时表?您没有包含该代码。
-
您会找到解决方法here。它不是那样工作的,你不能立即将存储过程的结果插入到表中。
-
您的存储过程不返回任何结果集。因此,您尝试做的事情是不可能的。要使这条路径成功,您必须更改存储过程的逻辑。
标签: sql sql-server stored-procedures sql-server-2012