[英]C# how to pass a DataTable parameter without a UDT to SQL Server
我正在嘗試從 API 動態批量合並數據到數據庫中。
我已經編寫了使用反射在 C# 中創建DataTable
變量的代碼,並且我正在生成一些 SQL 以在 SQL Server 中進行合並並將DataTable
變量與 SQL 一起傳遞以執行。
但是,當我嘗試將DataTable
作為參數傳遞時,它需要服務器上用戶定義表類型UDT
的TypeName
。
我想避免必須在服務器上設置UDT
,因為我沒有這樣做的權限,並且因為數據會定期更改,所以我希望能夠動態創建表,並且我希望能夠通過來自 C# 的數據類型信息。
有沒有一種方法可以使用DataTable
類型傳遞UDT
數據類型信息,或者使用 SQL 命令將表傳遞給數據庫的不同方法?
有沒有一種方法可以使用 DataTable 類型傳遞 UDT 數據類型信息,或者使用 SQL 命令將表傳遞給數據庫的不同方法?
您只能將表值參數與用戶定義的表類型結合使用。
將數據整體移動到數據庫中的另一個主要替代方法是使用BULK COPY
- 這早於表值參數。 ADO.NET 直接使用SqlBulkCopy
支持 BULK COPY 。
請注意, SqlBulkCopy
旨在直接插入到表中 - 我不相信它可以用於直接執行 sproc,但是您可以使用SqlBulkCopy
插入到臨時表中,然后在 sproc 中引用該臨時表,如果你真希望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.