SQL中用逗号分隔的ID列表,用于根据结果添加或更新

时间:2015-01-29 14:24:43

标签: sql sql-server sql-server-2008

我有一个逗号分隔的项目列表,我从表中检索,结果是这样

      declare @IDs = varchar(max) 
      set @IDs = '11,23,33,44,55'  -- this varies 

从此开始,我想要做的是遍历每一个并与我的表进行比较,看看该ID是否存在,如果它存在则更新该行但是如果它没有向我的表中添加一行。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你需要这样的东西(MERGE):

MERGE targetTableName AS TARGET
USING @tableOfIds AS SOURCE
ON ( TARGET.Id = SOURCE.Id )
WHEN MATCHED THEN
    UPDATE
    -- Here you will put your update statement. I mean SET...

其中@tableOfIds是一个包含您的ID的表格,一个只包含一列的表格,让我们称之为Id