跨伺服器資料更新

2021-04-12 14:03:42 字數 1360 閱讀 6017

--引用鄒建

/*--同步兩個資料庫的示例

測試環境及同步要求:

有資料庫伺服器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...