[英]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.