经常或可能需要同步不同数据库的某张表。一直想用C#写个同步工具{涉及到旧表存在记录进行更新操作,旧表不存在则进行插入操作}。
不过要写成公用工具,要求对方填写个完整的查询某张表的SQL语句{比如:select field1,field2 from tableName},我那个工具就可以同步到对应另外数据库的tableName表的相应字段。
那这个C#怎么批量更新。尝试了一天左右,还是卡在字段问题上。大家帮写个

解决方案 »

  1.   

    merge?sql:
    create table t1(col1 int,col2 varchar(20))
    create table t2(col1 int,col2 varchar(20),col3 date)
    go
    insert into t1 values --目标表
    (1,'aaa1')
    ,(2,'aaa2')
    ,(3,'aaa3')
    ,(6,'aaa6')insert into t2 values --源表
    (1,'bbb1',GETDATE())
    ,(2,'bbb2',GETDATE())
    ,(4,'bbb4',GETDATE())
    ,(5,'bbb5',GETDATE())
    go
    --
    merge t1 using t2 
    on t1.col1=t2.col1
    when matched then update set t1.col2=t2.col2
    when not matched then insert values(t2.col1,t2.col2)
    when not matched by source then delete;
    go
    select * from t1
    drop table t1,t2--结果把目标数据换成了源表数据