C#如何在没有UDT的情况下将DataTable参数传递给SQL Server

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

我正在尝试从API将数据动态大容量合并到数据库中

我已经编写了使用反射在C#中创建
DataTable
变量的代码,我正在生成一些SQL来在SQL Server中进行合并,并将
DataTable
变量与要执行的SQL一起传递

但是,当我尝试将
DataTable
作为参数传递时,服务器上用户定义的表类型
UDT
需要
TypeName

我希望避免在服务器上设置
UDT
,因为我没有这样做的权限,而且数据正在定期更改,所以我希望能够动态创建表,并且我希望能够从C#传入数据类型信息

是否有一种方法可以通过
DataTable
类型传递
UDT
数据类型信息,或者有另一种方法通过SQL命令将表传递到数据库

是否有一种方法可以将UDT数据类型信息与DataTable类型一起传入,或者有另一种方法可以使用SQL命令将表传递到数据库

只能将表值参数与用户定义的表类型结合使用

将数据整体移动到数据库中的另一个主要替代方法是使用
批量复制
——这比表值参数早。ADO.NET

请注意,
SqlBulkCopy
用于直接插入到表中-我不认为它可以直接用于执行存储过程,但如果您愿意,可以使用
SqlBulkCopy
插入到临时表中,然后在存储过程中引用该临时表