【发布时间】:2012-01-20 15:34:20
【问题描述】:
大家好……
我有两个表,它们的结构是相同的......
表日志详情
Date Time CardID Status
2012-01-20 00:00:00 A1 ABSENT
2012-01-20 00:00:00 B1 ABSENT
2012-01-20 00:00:00 C3 ABSENT
2012-01-20 00:00:00 D1 ABSENT
表preStatus
Date Time CardID Status
2012-01-20 07:00:10 A1 COMING
2012-01-20 07:10:00 C3 COMING
2012-01-20 08:00:00 B1 LATE
2012-01-20 17:00:00 B1 BACK
2012-01-20 17:10:10 A1 BACK
2012-01-20 17:13:00 C3 BACK
合并后
Date
2012-01-20 07:00:10 A1 COMING
2012-01-20 07:10:00 C3 COMING
2012-01-20 08:00:00 B1 LATE
2012-01-20 00:00:00 D1 ABSENT
2012-01-20 17:00:00 B1 BACK
2012-01-20 17:10:10 A1 BACK
2012-01-20 17:13:00 C3 BACK
我如何合并这两个表,因为在表 b 中有重复的记录,当我这样做时 合并...
merge into logDetail as Target
using preStatus as Source
on Target.L_Date=Source.L_Date
and Target.L_Time='00:00:00'
and Target.L_CardID=Source.L_CardID
when matched then
update set Target.L_Status=Source.L_Status,
Target.L_Time=Source.L_Time
when not matched then
insert (L_Date,L_Time,L_CardID,L_Status)
values(Source.L_Date,Source.L_Time,Source.L_CardID,Source.L_Status);
它说 MERGE 语句多次尝试更新或删除同一行
非常感谢任何帮助。
【问题讨论】:
-
c#标签似乎与此处无关。
标签: sql-server merge