如何在不声明SQL Server类型的情况下使用参数插入多个值?

时间:2018-10-25 23:28:20

标签: c# sql-server vb.net

就像标题中所说的那样,我正在尝试使用在代码中动态构造的INSERT命令将多个值插入SQL Server。

命令如下:

INSERT INTO xLog (value1, value2, value3) 
VALUES (@xLog);

并且,在此站点上的其他多个答案之后,参数@xLogSqlDataRecord的数组,其中包含要插入的值的集合(我也遵循了DataTable的方法,还建议使用,结果与以下相同。

但是,当我尝试执行此命令时,出现此错误:

  

表类型参数'@xLog'必须具有有效的类型名称。

...我理解这是因为SQL Server期望在遵循参数结构的数据库中创建自定义类型。假设由于X的原因,我不希望创建此自定义类型。

所以问题是:是否有一种方法可以从.net代码中使用参数将多个行插入SQL Server,而无需使用自定义类型或存储过程?

谢谢您的时间。

mod的注意事项:我同时用vb.net和c#标签进行了标记,因为我可以同时使用两种语言的代码。谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用SqlBulkCopy(可能与临时表结合使用),也可以传递JSON或XML文档并在TSQL中将其切碎。