1
  • 我想制作一个导入系统,它将查看一个数据源并将新记录复制到另一个数据源中。
  • 每月我想将一些表数据从一个数据源复制到另一个数据源

源表名:srcTable
目标表名:destTable

假设源表中的第一个月我有:

ID 名称
1 约翰
3 拉胡尔
5 安德鲁

所有三行将被复制到desTable

假设源表中的第二个月我有

Id 名称
1 约翰
3 拉胡尔
5 安德鲁
6 维卡斯
7 索南
8 迪维亚

首先 Sql 应该获取最后desTable
一行并将该行匹配到srcTable
并从中提取所有新记录scrTable并复制到desTable

......

请让我知道如何编写查询来实现上述目的。如果有更短的方法,那也会有帮助。

4

2 回答 2

0

You can write a stored procedure for do this action and execute that every time you want. for this action you can from bellow query: (Part 1 for insert new data, Part 2 for update change data)

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

I hope it's helpful.

于 2013-01-04T19:34:15.810 回答
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
于 2013-01-04T19:13:39.883 回答