簡體   English   中英

C#如何將沒有UDT的DataTable參數傳遞給SQL Server

[英]C# how to pass a DataTable parameter without a UDT to SQL Server

我正在嘗試從 API 動態批量合並數據到數據庫中。

我已經編寫了使用反射在 C# 中創建DataTable變量的代碼,並且我正在生成一些 SQL 以在 SQL Server 中進行合並並將DataTable變量與 SQL 一起傳遞以執行。

但是,當我嘗試將DataTable作為參數傳遞時,它需要服務器上用戶定義表類型UDTTypeName

我想避免必須在服務器上設置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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM