首页 > 解决方案 > 如何在不声明 SQL Server 类型的情况下使用参数插入多个值?

问题描述

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

该命令如下所示:

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

而且,在本网站的多个其他答案之后,参数@xLog是一个数组,SqlDataRecord其中包含要插入的值的集合(我也遵循了DataTable同样建议的方法,结果与下面相同)。

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

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

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

所以问题是:有没有一种方法可以在不使用自定义类型或存储过程的情况下从.net 代码中将多行插入到 SQL Server 中?

感谢您的时间。

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

标签: c#sql-servervb.net

解决方案


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


推荐阅读