我想在.NET中構建一個設計器,並希望能夠從存儲過程中檢索輸出的列和列類型而不調用它,以便設計器可用於映射輸出。這可能嗎?我甚至願意在必要時使用非託管API。有沒有辦法找出存儲過程返回而沒有運行它?
1
A
回答
3
我相信你要找的是SET FMTONLY
(Documentation)。
這使您可以執行一個SP(或select語句)並查看將在沒有實際執行查詢的情況下返回哪些列。
+0
通過SQL事件探查器,我看到ODBC,OLE-DB和/或其他低級API使用此技巧。 Upvoted,但我不知道使用它會多麼容易。 – 2011-01-05 15:09:26
+0
謝謝。我認爲這會起作用。它似乎返回所有可能的返回值,即使它們有條件地返回。 – 2011-01-05 15:21:55
1
這通常是不可能的,因爲即使是單個存儲過程也可以返回不同的結果集,具有不同的列或列數據類型。
0
在極端情況下,即使返回的結果集的數量可能取決於參數,並且存儲過程使用動態sql時,它絕對不可能。
相關問題
- 1. 有沒有辦法讓SQL Server存儲過程自動出錯?
- 2. 有沒有辦法顯示HTML而不運行它?
- 3. 有沒有辦法以預定義的時間間隔運行存儲過程?
- 4. 有沒有辦法讓YQL返回HTML?
- 5. 有沒有辦法跨存儲過程傳遞臨時表
- 6. 有沒有辦法在Oz中存儲函數/過程調用?
- 7. 有沒有辦法運行Chrome擴展程序而不點擊?
- 8. 有沒有辦法檢查ansicon.exe是否存在,而不使用CMake運行它?
- 9. ms sql存儲過程返回的數據沒有輸出
- 10. 它沒有返回
- 11. 有沒有辦法脫機運行Trac?
- 12. 有沒有辦法運行NPM安裝
- 13. 有沒有辦法從運行的ruby進程轉儲內存中的對象?
- 14. 有沒有辦法查看Rapid SQL對存儲過程執行的SQL?
- 15. 存儲過程沒有得到執行
- 16. 沒有它運行
- 17. 有沒有辦法在運行時找到PackageFamilyName?
- 18. 有沒有辦法讓MySQL返回INSERT命令產生的行?
- 19. 有沒有辦法讓python應用程序無法運行?
- 20. 視圖posts.views.create沒有返回HttpResponse對象。它沒有返回而不是
- 21. 所選的存儲過程或函數沒有返回列
- 22. 在沒有存儲過程的情況下返回錯誤
- 23. 返回值從存儲過程沒有設置
- 24. 存儲過程返回結果沒有變化
- 25. DataReader沒有返回MySQL存儲過程的結果
- 26. PLSQL存儲過程在實體沒有返回值框架
- 27. MySQL存儲過程沒有插入數據,儘管返回ID
- 28. 節點沒有爲成功的存儲過程返回值
- 29. 有沒有在特定時間運行Firebird存儲過程的方法?
- 30. 返回10,而且沒有退出-PHP
不要這樣想。請參閱相關的[Microsoft Connect項目](https://connect.microsoft.com/SQLServer/feedback/details/525653/stored-procedures-should-expose-detailed-contracts)。編輯:雖然實際上Visual Studio強類型數據集設計器在一定程度上執行此操作... – 2011-01-05 15:05:03