--引用鄒建
/*--同步兩個資料庫的示例
測試環境及同步要求:
有資料庫伺服器srv1和srv2,兩台電腦能互相訪問,有資料
srv1.庫名..author有欄位:id,name,phone,
srv2.庫名..author有欄位:id,name,telphone,adress
要求:srv1.庫名..author增加記錄則srv1.庫名..author記錄增加
srv1.庫名..author的phone欄位更新,則srv1.庫名..author對應欄位telphone更新
--*/
--大致的處理步驟
--1.在 srv1 上建立連線伺服器,以便在 srv1 中操作 srv2,實現同步
exec sp_addlinkedserver 'srv2','','sqloledb','srv2的sql例項名或ip'
exec sp_addlinkedsrvlogin 'srv2','false',null,'使用者名稱','密碼'
go--2.在 srv1 和 srv2 這兩台電腦中,啟動 msdtc(分布式事務處理服務),並且設定為自動啟動
我的電腦--控制面板--管理工具--服務--右鍵 distributed transaction coordinator--屬性--啟動--並將啟動型別設定為自動啟動
go--3.實現同步處理
--a.在srv1..author中建立觸發器,實現資料即時同步
--新增同步
create trigger tr_insert_author on author
for insert
asset xact_abort on
insert srv2.庫名.dbo.author(id,name,telphone)
select id,name,telphone from inserted
go--修改同步
create trigger tr_update_author on author
for update
asset xact_abort on
update b set name=i.name,telphone=i.telphone
from srv2.庫名.dbo.author b,inserted i
where b.id=i.id
go--刪除同步
create trigger tr_delete_author on author
for delete
asset xact_abort on
delete b
from srv2.庫名.dbo.author b,deleted d
where b.id=d.id
go
跨資料庫 跨伺服器查詢
if notexists select srvname from master dbo sysservers where srvname vlinkinadmin begin exec sp dropserver server vlinkinadmin droplogins droplogins 增...
JOB MERGE 跨伺服器同步資料
為了解決單伺服器壓力,將庫分伺服器部署,但是原來用觸發器實現的表資料同步就實現不了了。因為總監老大不允許 開啟分布式事務 msdtc 我又不想為了乙個幾千行的基礎資料做複製訂閱。於是乎決定用 job merge的方式實現。第一步 建立乙個儲存過程 當然也可以直接寫到job中 create proce...
跨伺服器查詢
select from openrowset msdasql driver server 0.uid pwd kft.dbo.user 建立乙個鏈結的伺服器 引數 1被訪問的伺服器別名 4要訪問的伺服器 exec sp addlinkedserver l ms sqloledb 0.gogo 登陸l...