關於SQL SERVER資料同步自己的一些設計經驗

來源:互聯網
上載者:User

原文地址:

http://www.cnblogs.com/thtfria/archive/2012/04/04/2432167.html

 

不過這個項目已經過去N天但是資料同步部分起初是我的一些設計思想。這個項目是某電力公司的一卡通項目,這個項目將來需要在全國20幾個分廠都要做。

  按照項目的要求基礎資料在總部儲存,然後同步到各個分廠。裡面一些詳細的需求不詳說了。直接進入正題。

  同步方式:資料庫之間的同步,不再做程式上的幹涉了。

  實現步驟:  

      1、總部的表建立觸發器,來記錄對錶的增、刪、改的動作,將動作記錄到一張中間表中(中間表需要加一個同步標記的欄位來表示資料是否已經被同步過)

CREATE trigger [TG_JC_ZZJG] on [dbo].[JC_ZZJG]
for insert,delete,update
as
begin
-- 插入 1
IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
begin
INSERT INTO T_JC_ZZJG
(CZLX,BH,MC,QMC,SJBH,LXR,LXDH,LXDZ,BZ,GSBJ,GSBH)
select 1,i.BH,i.MC,i.QMC,i.SJBH,i.LXR,i.LXDH,i.LXDZ,i.BZ,i.GSBJ,i.GSBH
from inserted i
end
-- 更新 2
IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
begin
INSERT INTO T_JC_ZZJG
(CZLX,BH,MC,QMC,SJBH,LXR,LXDH,LXDZ,BZ,GSBJ,GSBH)
select 2,u.BH,u.MC,u.QMC,u.SJBH,u.LXR,u.LXDH,u.LXDZ,u.BZ,u.GSBJ,u.GSBH
from inserted u
end
-- 刪除 3
IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
begin
INSERT INTO T_JC_ZZJG
(CZLX,BH,GSBH)
select 3,d.BH,D.GSBH
from deleted d
end
end

      2、分廠建立遠端連線

        //添加遠端連線

EXEC sp_addlinkedserver @server = 'ZBEZCAS',@srvproduct='',@provider = 'SQLOLEDB',@provstr = 'DRIVER={SQL       Server};SERVER='127.0.0.1';UID='sa';PWD='sa';

        //設定串連串連的登入名稱

        EXEC sp_addlinkedsrvlogin 'ZBEZCAS','false',NULL,'sa','sa'

      3、分廠建立同義字,來簡化訪問表(這步只是簡化操作,沒有別的太大意思)

        CREATE SYNONYM T_JC_ZZJG FOR ZBEZCAS.EZCAS.DBO.T_JC_ZZJG

      4、分廠執行同步資料,完畢後回寫同步標記為“已同步”

        具體的同步方法使用的是預存程序,直接同步處理T_JC_ZZJG (被簡化後的遠端資料表)表中沒有被同步的資料即可,同步完回寫同步標記。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.