2
A
回答
0
是的,你可以從一個存儲過程做到這一點,但不能從用戶定義的函數。值得研究表值函數,我相信你也可以從那裏返回一個動態表,但我自己並沒有使用它。
3
你可以做到這一點通過存儲過程,因爲它可以返回任何類型的表,問題是什麼是你想達到什麼會做與數據,你有沒有關於主意?
2
這不能用函數來完成(作爲返回的表結構必須預先定義的),但是這是可以做到與存儲的進行。一些僞代碼:
CREATE PROCEDURE Foo
As
DECLARE @Command
SET @Command = 'SELECT * from MyTable'
-- For debugging, work in an optional PRINT @Command statement
EXECUTE (@Command)
RETURN 0
當您運行存儲過程美孚,它建立您的查詢作爲一個@Command字符串,然後動態地執行它不知道什麼被查詢或退回任何東西,並且數據集由該EXECUTE語句返回的「傳回」給調用過程的進程。
建立與呵護您的查詢,這玩意兒可真難以調試。根據您的實現,它可能是SQL注入攻擊的來源(請記住,存儲過程實際上不知道該動態查詢將執行什麼操作)。對於快速的東西,EXECUTE()
工作正常,但爲了更安全和更有用(如果精心製作)解決方案,請查看sp_ExecuteSQL
。
相關問題
- 1. SQL Server:動態函數或重用存儲過程
- 2. 從SQL Server 2008中的存儲過程/函數返回可查詢表
- 3. SQL Server存儲過程的返回值
- 4. SQL Server存儲過程可以返回複雜類型值
- 5. ADO.NET SQL Server select存儲過程可能返回的行數
- 6. SQL Server存儲過程:返回
- 7. SQL Server存儲過程返回null
- 8. SQL Server存儲過程返回'失敗'
- 9. SQL Server存儲過程城市返回
- 10. 我可以在存儲過程中返回附加值以及SQL數據嗎?
- 11. PHP的SQL Server驅動可以返回SQL返回碼嗎?
- 12. 在函數中執行存儲過程或動態SQL
- 13. 如何返回SQL Server和WebAPI2中的存儲過程列表
- 14. 動態SQL Server存儲過程
- 15. SQL Server動態存儲過程
- 16. 如何從SQL Server存儲過程返回多個數據表?
- 17. 是否可以在SQL Server 2005中使用表值函數返回動態列?
- 18. 我可以默認SQL存儲過程參數爲動態表達式嗎?
- 19. 在SQL Server中可以遞歸調用存儲過程嗎?
- 20. SQL Server通過存儲過程將表返回到MS Access
- 21. 使用動態SQL存儲過程返回錯誤數據
- 22. 我可以傳遞SQL SERVER函數或存儲過程中的變量參數嗎?
- 23. TSQL從函數或存儲過程返回表
- 24. SQL Server存儲過程中的動態數據源
- 25. SQL Server:存儲過程中的動態數據庫名稱
- 26. SQL Server存儲過程存儲返回值
- 27. T-SQL存儲過程返回表
- 28. SQL Server存儲過程在T-SQL中捕獲返回值
- 29. 分析從SQL Server存儲過程返回的數據
- 30. SQL Server存儲過程 - 不返回預期的數據
我調換與2列和N行的表格與N列和2行的表通過樞軸操作。所以我不知道前面的列。據我所知,除非您事先知道表格架構,否則不能有存儲過程返回表格。 – 2011-05-11 16:06:35
不,一個sproc可以返回一個動態集合,它不需要事先知道結構。 – RThomas 2011-05-11 17:15:52