回答
您可以執行存儲過程並將其選定到臨時表中。
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. 過濾存儲過程的結果集
- 3. Oracle存儲過程返回結果集
- 4. 存儲過程中的SQL結果集
- 5. sql存儲過程清除結果集
- 6. Mysql查看,從存儲過程中得到結果
- 7. 沒有得到任何結果從存儲過程
- 8. 從exec存儲過程得到xml結果
- 9. 從SQL Server存儲過程獲得空結果存儲過程,返回XML
- 10. 存儲過程從樹結構構建結果集?
- 11. Powershell - 從存儲過程返回結果
- 12. TSQLT從存儲過程返回結果
- 13. 從存儲過程返回結果
- 14. 找回結果從存儲過程
- 15. WCF從存儲過程返回結果
- 16. 從存儲過程中獲取結果
- 17. 存儲過程結果?
- 18. AutoMapping存儲過程結果
- 19. 動態存儲過程結果到表
- 20. 如何獲得從存儲過程的結果集「返回」的行數
- 21. 從oracle存儲過程獲取結果集
- 22. 從存儲過程中的結果集中刪除db2
- 23. 從存儲過程插入temp表,返回多個結果集
- 24. 從存儲過程的第n個結果集創建表
- 25. 從存儲過程返回一個結果集
- 26. 如何阻止從存儲過程返回結果集?
- 27. Sql Server從存儲過程加入結果集
- 28. ServiceStack.OrmLite從存儲過程中獲取多個結果集
- 29. 嘗試從存儲過程加載第二個結果集
- 30. 從Java中的存儲過程獲取結果集
我有一個建議,我們不應該建議OP在這裏使用臨時表,因爲根據OP,只有一行要獲取。赦免任何錯誤。 – Pankaj 2011-05-24 13:51:12
我同意,但爲了概括答案,我們應該表明可以使用臨時表。他的需求(或其他人)可能會改變它返回多行而不是一行的位置。 – kemiller2002 2011-05-24 14:01:12
是的。同意。但OP目前的需求是隻取一行。在許多行的情況下,我將欣賞臨時表。謝謝 – Pankaj 2011-05-24 14:03:05