C#如何在没有UDT的情况下将DataTable参数传递给SQL Server
我正在尝试从API将数据动态大容量合并到数据库中 我已经编写了使用反射在C#中创建C#如何在没有UDT的情况下将DataTable参数传递给SQL Server,c#,sql-server,datatable,C#,Sql Server,Datatable,我正在尝试从API将数据动态大容量合并到数据库中 我已经编写了使用反射在C#中创建DataTable变量的代码,我正在生成一些SQL来在SQL Server中进行合并,并将DataTable变量与要执行的SQL一起传递 但是,当我尝试将DataTable作为参数传递时,服务器上用户定义的表类型UDT需要TypeName 我希望避免在服务器上设置UDT,因为我没有这样做的权限,而且数据正在定期更改,所以我希望能够动态创建表,并且我希望能够从C#传入数据类型信息 是否有一种方法可以通过DataTab
DataTable
变量的代码,我正在生成一些SQL来在SQL Server中进行合并,并将DataTable
变量与要执行的SQL一起传递
但是,当我尝试将DataTable
作为参数传递时,服务器上用户定义的表类型UDT
需要TypeName
我希望避免在服务器上设置UDT
,因为我没有这样做的权限,而且数据正在定期更改,所以我希望能够动态创建表,并且我希望能够从C#传入数据类型信息
是否有一种方法可以通过DataTable
类型传递UDT
数据类型信息,或者有另一种方法通过SQL命令将表传递到数据库
是否有一种方法可以将UDT数据类型信息与DataTable类型一起传入,或者有另一种方法可以使用SQL命令将表传递到数据库
只能将表值参数与用户定义的表类型结合使用
将数据整体移动到数据库中的另一个主要替代方法是使用批量复制
——这比表值参数早。ADO.NET
请注意,SqlBulkCopy
用于直接插入到表中-我不认为它可以直接用于执行存储过程,但如果您愿意,可以使用SqlBulkCopy
插入到临时表中,然后在存储过程中引用该临时表