内部过程中的调用过程操作返回的结果

时间:2017-06-03 12:46:57

标签: sql-server tsql stored-procedures

我有两个存储过程 - test_proc和calling_proc。在程序calling_proc中调用过程test_proc。

结果如下所示:

enter image description here

是否可以只从calling_proc(而不是四行)返回一行,如下所示:

+-------+-------+-------+-------+
| test1 | test2 | test3 | test4 |
+-------+-------+-------+-------+
|     1 |     2 |     3 |     4 |
+-------+-------+-------+-------+

程序:

create procedure test_proc
as
begin
select 1 test1
select 2 test2
select 3 test3
end

create procedure calling_proc
as
begin
exec test_proc
select 4 test4
end

1 个答案:

答案 0 :(得分:2)

这样的事情......根据您的环境,您必须更改服务器设置。但请使用OPENROWSET

SELECT * 
INTO #MyTempTable 
FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;',
     'EXEC test_proc')

SELECT *, 4 AS test4 
FROM #MyTempTable

或者,像这样......

CREATE #MyTempTable (test1 int, test2 int, test3 int, test4 int)
INSERT INTO #MyTemptTable (test1,test2,test3)
EXEC test_proc

UPDATE #MyTempTable
SET test4 = 4