我有一个逗号分隔的项目列表,我从表中检索,结果是这样
declare @IDs = varchar(max)
set @IDs = '11,23,33,44,55' -- this varies
从此开始,我想要做的是遍历每一个并与我的表进行比较,看看该ID是否存在,如果它存在则更新该行但是如果它没有向我的表中添加一行。
感谢任何帮助。
答案 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
。