我有一個存儲過程SP1,它使用SELECT語句返回兩個表T1和T2。我想在另一個存儲過程SP2中對T2執行一些操作。有人可以指導我如何做到這一點?從SQL Server獲取最後一個表存儲過程
2
A
回答
2
選項1
變化SP1保存T2到一個表中,除了使用SELECT返回它。然後使用該表作爲SP2的輸入。
選項2
如果你無法改變SP1,你可以捕捉的存儲過程在一個表中的輸出。在StackOverflow上查看如何使用OPENROWSET或通過預先定義臨時表來執行此問題:How to SELECT * INTO [temp table] FROM [stored procedure]。
如果T1和T2沒有相同的定義,則此選項將不起作用。如果他們有相同的定義,你可以導入這兩個結果集爲一個表如下:
--create a temporary table with the same definition as T1 and T2
CREATE TABLE #temp (
Col1 SOME DATATYPE,
Col2 SOME DATATYPE
);
--fill your temp table with the result sets of T1 and T2
INSERT INTO #temp
EXEC [dbo].[SP1];
但你必須處理T1-T2 Plus的表,而不是T2。
所以看來選項1是你最好的選擇。
+1
其實我試圖用選項2來實現它。但是謝謝你告訴選項1.非常感謝。 –
+0
不客氣!我可以想象你想要選擇2路由,必須說我有點驚訝,似乎沒有明顯的方式來處理來自SQL Server中的SP的多個結果集。 – Josien
相關問題
- 1. SQL Server存儲過程,從多個表
- 2. 從另一個存儲過程調用SQL Server存儲過程
- 3. 使用一個存儲過程從表中獲取N個最後一行
- 4. SQL Server存儲過程從表中獲取行
- 5. 從SQL Server存儲過程獲取單一響應與C#
- 6. 存儲過程從SQL Server中的存儲過程本身獲取值
- 7. 從存儲過程獲取SQL
- 8. 從另一個存儲過程的SQL Server調用存儲過程
- 9. SQL Server觸發器 - 從第一個插入存儲過程獲取變量?
- 10. 從SQL Server存儲過程獲取值輸出到變量
- 11. 從SQL Server存儲過程獲取結果
- 12. 的SQL Server 2016 SSIS從存儲過程中獲取光標
- 13. 我需要從SQL Server存儲過程中獲取列名
- 14. SQL Server存儲過程從剛剛插入的行獲取值
- 15. 從SQL Server 2008中的存儲過程中獲取XML
- 16. 從SQL Server獲取字段存儲過程
- 17. 從SQL Server存儲過程執行Oracle存儲過程
- 18. 在SQL Server的每一行執行一個存儲過程表
- 19. SQL Server存儲過程在多個表中插入一個
- 20. 從SQL Server存儲過程獲得空結果存儲過程,返回XML
- 21. SQL Server 2012動態SQL - 存儲過程 - 獲取語法錯誤
- 22. 存儲過程SQL Server
- 23. Sql server存儲過程
- 24. SQL Server存儲過程sp_executesql
- 25. sql server 2000存儲過程
- 26. SQL Server 2005存儲過程
- 27. 與SQL Server存儲過程
- 28. SQL Server的存儲過程
- 29. SQL Server存儲過程
- 30. SQL Server存儲過程
我不認爲你可以用SP做到這一點,你需要的是一個表值函數。 – yogi
沒有辦法從TSQL中的存儲過程訪問第二個結果集。 如果兩個結果集都是聯合兼容的,那麼你可以'INSERT INTO @T EXEC YourProc',但是這會插入**兩個**結果集。 –