回答
您可以執行存儲過程並將其選定到臨時表中。
Create #table()....
INSERT INTO #table EXEC your_procedure
當它真正變得困難唯一的一次(也許是不可能的,我從來沒有見過它做)是當存儲過程返回多個記錄(未多條記錄)和記錄集有不同的領域。
編輯: 你也可以使用表變量(DECLARE @my_table TABLE()
)來做同樣的事情。在你的情況下,你會想嘗試一下,看看哪個更好。
http://www.sql-server-performance.com/2007/temp-tables-vs-variables/
根據OP場景,在這種情況下應該避免使用表格表格,因爲只有單個行會被取出,所以我認爲應該使用表格變量。請糾正我。赦免任何錯誤。 – Pankaj 2011-05-24 13:52:20
這個問題被標記爲sql-server。如果您使用SQL2005或更新的版本,只能將-exec插入到表變量中。使用臨時表適用於所有版本的SQL。此外,由於只有一行,因此臨時表和表變量之間的性能(和內存)差異將可以忽略不計。 – 2011-05-24 14:37:33
我會建議你創建一個Table variable
並插入行的信息到它
編輯:
請注意,如果不是在交易,而不是與其他表連接,並將這個行動將是有益作爲包含行信息的中間體,正如您在查詢中所述。
- 1. 從存儲過程合併結果集
- 2. sql存儲過程清除結果集
- 3. 存儲過程中的SQL結果集
- 4. 沒有得到任何結果從存儲過程
- 5. Mysql查看,從存儲過程中得到結果
- 6. 從SQL Server存儲過程獲得空結果存儲過程,返回XML
- 7. WCF從存儲過程返回結果
- 8. 從存儲過程中獲取結果
- 9. AutoMapping存儲過程結果
- 10. 動態存儲過程結果到表
- 11. 如何獲得從存儲過程的結果集「返回」的行數
- 12. 從存儲過程的第n個結果集創建表
- 13. 從Java中的存儲過程獲取結果集
- 14. 從oracle存儲過程獲取結果集
- 15. 如何阻止從存儲過程返回結果集?
- 16. 從存儲過程訪問結果集Transact-SQL SQL Server
- 17. 從存儲過程返回一個結果集
- 18. Linq to Enities:存儲過程調用後結果集未得到更新
- 19. 在另一個存儲過程中使用mysql存儲過程的結果集
- 20. 如何將結果添加到MySQL存儲過程的結果集?
- 21. 如何將存儲過程的多個結果存儲到數據集中?
- 22. 無法獲得結果,通過在C#中的數據集存儲過程
- 23. Java過程得到結果
- 24. 結合MySQL存儲過程的結果
- 25. 從存儲過程插入到表中選擇結果集,但列數不同
- 26. 無法通過PDO獲取存儲過程結果集PHP
- 27. TSQL:從另一個存儲過程調用存儲過程並讀取結果
- 28. 如何從存儲過程執行存儲過程時禁用查詢結果?
- 29. 如何從存儲過程中抑制存儲過程的結果?
- 30. 從存儲結果
我有一個建議,我們不應該建議OP在這裏使用臨時表,因爲根據OP,只有一行要獲取。赦免任何錯誤。 – Pankaj 2011-05-24 13:51:12
我同意,但爲了概括答案,我們應該表明可以使用臨時表。他的需求(或其他人)可能會改變它返回多行而不是一行的位置。 – kemiller2002 2011-05-24 14:01:12
是的。同意。但OP目前的需求是隻取一行。在許多行的情況下,我將欣賞臨時表。謝謝 – Pankaj 2011-05-24 14:03:05