【问题标题】:Insert comma delimited ids into a table将逗号分隔的 id 插入表中
【发布时间】:2018-02-27 19:32:07
【问题描述】:

我需要将记录插入到 SQL Server 表中。客户端发送我需要插入到表中特定列的 id:

(2,4,123,1357,1234,5657,753);

使用this 函数我正在拆分逗号分隔的字符串,但不确定如何将其与其他列一起插入到表中

我需要创建一些会生成插入的东西,例如:

insert into table_name (id,column_2,column_3) values (2, column_s_some_value, column_3_some_value);
insert into table_name (id,column_2,column_3) values (4, column_s_some_other_value, column_3_some_value);
insert into table_name (id,column_2,column_3) values (123, column_s_some_value, column_3_some_value);
ETC...

我怎样才能做到这一点?

【问题讨论】:

  • SQL 服务器 2016?还是老?
  • 它实际上在 Azure 上
  • 您可以交叉连接到table valued function string_spilt 并编写动态 SQL 以使用值 (),(),(),() 进行插入

标签: sql azure azure-sql-database


【解决方案1】:

split函数是一个表值函数,这意味着它可以被当作一个表,你可以做一个INSERT..SELECT

insert into table_name (id,column_2,column_3)
SELECT s.item, column_s_some_value, column_3_some_value
FROM Split(@input_string, ',') s
{JOINS if needed to get other column values}

【讨论】:

    【解决方案2】:

    如果您确实想要拆分字符串,最有效的方法是使用here by Jeff Moden 概述的计数表。我强烈建议您在几乎任何版本的 SQL Server 中使用此方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2013-05-08
      • 2011-08-20
      相关资源
      最近更新 更多