【问题标题】:Comma separated string to stored procedure逗号分隔的字符串到存储过程
【发布时间】:2017-03-13 05:24:18
【问题描述】:

我正在使用 SQL Server,我有一个表。 id 列是主键。我将几个id 值作为逗号分隔的字符串发送到存储过程中(例如:1,2,3,4)。我需要将两列更新为字符串值“A”。谁能给我一个例子如何处理存储过程中的多个值?

【问题讨论】:

  • 如果你的数据库兼容级别不低于130,那么使用SELECT Value FROM STRING_SPLIT(id,',')
  • @Pream:仅当他使用 SQLServer 2016 时

标签: sql-server stored-procedures


【解决方案1】:

你可以用不同的方式来做。它可能是以下之一。

UPDATE dbo.YourTable
SET ColumnA = 'A'
WHERE 
    ',' + '1,2,3,4' + ',' LIKE '%,' + CAST(Id AS VARCHAR(100)) + ',%'

你可以用sp_executesql做到这一点

【讨论】:

    【解决方案2】:

    您可以在字符串中创建更新,然后执行它:

    declare @myQuery as char(100) = 'update myTable set ColumnA = ''A'', ColumnB = ''A'' where Id in (' + @myParameterString +')'
    execute(@myQuery)
    

    注意:要在 T-SQL 中转义单引号,您必须键入两个单引号(例如,在 ''A'' 中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-29
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 2014-05-30
      相关资源
      最近更新 更多