【发布时间】:2016-03-28 18:40:19
【问题描述】:
我目前有一个存储过程,它将我的目标表 (Ticket_Report) 与我的数据源表 (New_Tickets) 进行比较。
我正在使用 MERGE INTO 语句来比较这两者。当它在两个表之间找到匹配项时,它会使用源表中的相应信息更新目标表中的当前行。如果它没有找到匹配项,它会将源表中的数据插入到目标表中。
MERGE INTO Ticket_REPORT T1
USING @New_Tickets T2
ON T1.TICKET_NO=T2.TICKET_NO
WHEN MATCHED THEN
UPDATE SET
T1.TICKET_NO = T2.TICKET_NO,
T1.ASSIGNED_GROUP = T2.ASSIGNED_GROUP,
T1.ASSIGNEE = T2.ASSIGNEE,
T1.FNAME = T2.FNAME,
T1.LNAME = T2.LNAME
WHEN NOT MATCHED THEN
INSERT VALUES(
T2.TICKET_NO,
T2.ASSIGNED_GROUP,
T2.ASSIGNEE,
T2.FNAME,
T2.LNAME
);
我需要做的是,当我找到 MATCH 时,我需要删除该行,而不是仅仅更新该行,并将其重新插入到目标表中。谁能告诉我如何在找到 MATCH 时一个接一个地删除和插入?
【问题讨论】:
标签: sql-server tsql stored-procedures merge