我有两个存储过程 - test_proc和calling_proc。在程序calling_proc中调用过程test_proc。
结果如下所示:
是否可以只从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
答案 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