我做的是2個資料庫的乙個備份同步更新,因為備份資料庫有字段的冗餘增加,所以不能完全bulkcopy這樣的同步,需要進行乙個修改再同步更新,具體修改**不展示出來了,下面貼更新**。
開始的時候,使用如下**進行更新:
using (var conn = newsqlconnection(fromconn))
int updatecount = 0
;
using (var tmpconn = new
sqlconnection(toconn))
}sw.stop();
//修改當前表最後同步時間
updatelasttime(toconn, tablename, nowtime, "
update");
console.writeline(
"增量同步資料更新完成,表名:,資料條,耗時秒
", tablename, updatecount, sw.elapsed.totalseconds);}}
catch
(exception e)
}}
這種方法是沒有效果的,因為這是2個資料庫的表進行同步更新,sqldataadapter的update只對同乙個庫有效(我只能做到這種,能不能2個庫我現在做不出來),然後網上找另一種方法,然後有如下**對資料庫進行同步更新操作:
using (var conn = newsqlconnection(fromconn))
int updatecount = 0
;
using (var tmpconn = new
sqlconnection(toconn))
tmpcolumnsql += "
where id=@id";
tmpsda.updatecommand = new
sqlcommand(tmpcolumnsql, tmpconn);
foreach (var column in
columnlist)
tmpsda.updatecommand.updatedrowsource =updaterowsource.none;
tmpsda.updatebatchsize = 500
; updatecount =tmpsda.update(dt);}}
sw.stop();
//修改當前表最後同步時間
updatelasttime(toconn, tablename, nowtime, "
update");
console.writeline(
"增量同步資料更新完成,表名:,資料總數:條,耗時秒
", tablename, updatecount, sw.elapsed.totalseconds);}}
catch
(exception e)
}}
這種方法能進行同步更新,但是效能現在還正在進行測試,不知道會不會很慢,因為資料量大的情況下,同步更新也是乙個耗時的操作。
如果有更好的方法,求分享。
同步兩個資料庫
同步兩個資料庫的示例 有資料 srv1.庫名.author有欄位 id,name,phone,srv2.庫名.author有欄位 id,name,telphone,adress 要求 srv1.庫名.author增加記錄則srv1.庫名.author記錄增加 srv1.庫名.author的phone...
sql 定時同步兩個資料庫
定時同步伺服器上的資料 例子 測試環境,sql server2000,遠端伺服器名 xz,使用者名為 sa,無密碼,測試資料庫 test 伺服器上的表 查詢分析器連線到伺服器上建立 create table user id int primary key,number varchar 4 name ...
通過作業,定時同步兩個資料庫
定時同步伺服器上的資料 例子 測試環境,sql server2000,遠端伺服器名 xz,使用者名為 sa,無密碼,測試資料庫 test 伺服器上的表 查詢分析器連線到伺服器上建立 create table user id int primary key,number varchar 4 name ...