SourceTableName:srcTable
DestinationTableName:destTable
假设源表中的第一个月我有:
Id Name
1 john
3 Rahul
5 Andrew
所有三行都将复制到desTable
假设源表中的第二个月我有
Id姓名
1 John 3 Rahul
5 Andrew
6 Vikas
7 Sonam
8 Divya
首先,Sql应该获得desTable
的最后一行
并将该行与srcTable
进行匹配
并从scrTable
中提取所有新记录并复制到desTable
.....
请让我知道如何编写查询以实现上述目的。如果有更短的方法,这也会有所帮助。
答案 0 :(得分:0)
由于您只关心添加新记录,并且不需要处理更新或删除...如果目标表中不存在记录,您只需添加源表中的记录:
INSERT INTO destTable (ID, Name)
SELECT s.ID, s.Name
FROM
srcTable s
LEFT OUTER JOIN destTable d ON d.ID = s.ID
WHERE
d.ID IS NULL
答案 1 :(得分:0)
您可以编写存储过程来执行此操作,并在每次需要时执行该操作。 对于此操作,您可以从以下查询: (插入新数据的第1部分,更新更改数据的第2部分)
Insert Into DestinationTable(ID, Name)
Select ID, Name
From SoiurceTable
Where Not Exists
(Select *
From TDestinationTablest
Where DestinationTable.ID = SoiurceTable.ID)
Go
Update DestinationTable
Set DestinationTable.Name = SoiurceTable.Name
From DestinationTable, SoiurceTable
Where DestinationTable.ID = SoiurceTable.ID
我希望它有用。