【问题标题】:How to INSERT multiple Values using Parameters WITHOUT declaring a SQL Server Type?如何在不声明 SQL Server 类型的情况下使用参数插入多个值?
【发布时间】:2018-10-25 23:28:20
【问题描述】:

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

命令如下所示:

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

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

但是,当我尝试执行这个命令时,我得到了这个错误:

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

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

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

感谢您的宝贵时间。

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

【问题讨论】:

  • 这里的结局是什么?您是否只是想避免为您提供的值指定数据类型?为什么会这样?
  • 嗯,是的,我试图避免更改现有数据库,因为这并不总是可能的。如果我无需创建自定义 SQL 类型就可以进行插入,我就不必更改任何表。

标签: c# sql-server vb.net


【解决方案1】:

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

【讨论】:

  • SqlBulkCopy 它是。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多