如何將數據集對象傳遞給存儲過程?數據集包含多個表,我需要能夠從SQL中訪問它們。將整個數據集傳遞給MSSQL 2005中的存儲過程
回答
它看起來像你可以用SQL Server 2008或更新版本(至少有一個DataTable)做到這一點。這裏是鏈接:
http://www.eggheadcafe.com/community/aspnet/10/10138579/passing-dataset-to-stored-procedure.aspx
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
可以使用表值參數傳遞單個表SQL 2008 http://msdn.microsoft.com/en-us/library/bb675163.aspx
或
參考這篇文章,並使用SQL CLR程序通過數據集http://blogs.msdn.com/b/jpapiez/archive/2005/09/26/474059.aspx
由於article從MusiGenesis的回答指出
在SQL Server 2005和更早的版本,它是 不可能通過可變 作爲參數傳遞給存儲過程的表。 當多行數據到SQL時 服務器需要向SQL Server發送多行 數據,開發人員要麼一次發送一行,要麼 與其他變通辦法一起發送,以滿足 的要求。儘管VB.Net開發人員 最近告訴我,.Net 中有一個可用的SQLBulkCopy對象,可以一次將多行數據發送到SQL 服務器,但仍不能將 傳遞給存儲過程。
在陳述明顯這裏的風險是兩個更接近
的參數多處理過程
你可能會重新評估,如果你真的,真的需要通過一個通用表變量。雖然有時這是無法避免的,但爲什麼這是MS SQL Server具有的一組功能的後續增加的部分原因,因爲通常情況下,您可以通過構建存儲過程和數據處理流程來繞過它。
如果您能夠'參數化'您的過程,那麼您應該可以讓存儲過程根據有限數量的參數檢索完整數據集。 (這與數據庫只與存儲過程級別的應用程序接口更加強大,這種方法同樣也不是一件壞事,通過限制靈活性減少了可能的情況的數量,並因此減少了可能的未受影響的情況的數量。閱讀:安全漏洞和一般的bug)
臨時表
除了上面總是有與臨時表方法,它可以或多或少複雜,這取決於共享,你需要的數據範圍(共享可以在數據庫用戶,應用程序用戶,連接,進程等之間)。
好的副作用是,這樣的方法將允許進程的持久性(這使您更接近於撤消,重做和繼續中斷工作的能力)。
- 1. 將參數傳遞給MSSQL的錯誤存儲過程從PHP
- 2. 將數據集傳遞給SQL Server存儲過程
- 3. 將數組傳遞給存儲過程
- 4. 將參數傳遞給存儲過程
- 5. 將日期作爲輸入參數傳遞給mssql存儲過程通過PHP
- 6. 傳遞值數組給存儲過程在SQL 2005
- 7. 將VARBINARY傳遞給存儲過程
- 8. 將列表傳遞給存儲過程
- 9. SQL存儲過程:如何將文件集合傳遞給存儲過程?
- 10. 將參數傳遞給存儲過程som檢索數據
- 11. 如何將數據集傳遞給存儲過程作爲輸入參數?
- 12. 如何將表中的整數值數組傳遞給存儲過程?
- 13. 將查詢結果傳遞給存儲過程中的參數
- 14. 將函數值傳遞給MS SQL中的存儲過程
- 15. 將值傳遞給存儲過程中的參數
- 16. 將參數傳遞給c中的sql存儲過程#
- 17. 將多個參數傳遞給存儲過程
- 18. SQL Server 2012 - 將存儲過程名稱傳遞給另一個存儲過程
- 19. 將可變數量的參數傳遞給存儲過程
- 20. 將動態數量的參數傳遞給存儲過程
- 21. 存儲過程 - 將兩個值傳遞到存儲過程
- 22. 如何將值的「數組」傳遞給我的存儲過程?
- 23. SSRS 2005將不同參數傳遞給同一數據集
- 24. 將多個存儲過程的結果傳遞給視圖
- 25. 將數組傳遞到存儲過程
- 26. 將存儲過程中的多個參數傳遞給QueryString參數
- 27. 如何將數組數組傳遞給Oracle存儲過程?
- 28. 將參數傳遞給帶有VIEWS的存儲過程?
- 29. 將參數傳遞給ASP.NET的存儲過程WinForm
- 30. VBScript:將具有空值的參數傳遞給存儲過程?
SQL Server 2005的任何希望? – 2010-10-05 11:36:59
你可以通過將你的DataSet序列化爲XML(使用它的WriteXml方法),然後將XML作爲字符串參數傳入來進行破解。這意味着您必須在存儲過程中執行XML處理。 – MusiGenesis 2010-10-05 12:54:18