怎么把服務器的數據同步到本地數據庫


/* --同步兩個數據庫的示例 

有數據 
srv1.庫名..author有字段:id,name,phone, 
srv2.庫名..author有字段:id,name,telphone,adress 

要求: 
srv1.庫名..author增加記錄則srv2.庫名..author記錄增加 
srv1.庫名..author的phone字段更新,則srv2.庫名..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 


-- 然后創建一個作業定時調用上面的同步處理存儲過程就行了 

企業管理器 
-- 管理 
--
SQL   Server代理 
--
右鍵作業 
--
新建作業 
--
"常規"項中輸入作業名稱 
--
"步驟"項 
--
新建 
--
"步驟名"中輸入步驟名 
--
"類型"中選擇"Transact-SQL   腳本(TSQL)" 
--
"數據庫"選擇執行命令的數據庫 
--
"命令"中輸入要執行的語句:   exec   p_process   
--
確定 
--
"調度"項 
--
新建調度 
--
"名稱"中輸入調度名稱 
--
"調度類型"中選擇你的作業執行安排 
--
如果選擇"反復出現" 
--
點"更改"來設置你的時間安排 


然后將SQL   Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行 

設置方法: 
我的電腦 -- 控制面板--管理工具--服務--右鍵   SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定. 


-- 3.實現同步處理的方法2,定時同步 

-- 在srv1中創建如下的同步處理存儲過程 
create    proc   p_process   
as 
-- 更新修改過的數據 
update   b    set   name =i.name,telphone =i.telphone 
from   srv2.庫名.dbo.author   b,author   i 
where   b.id =i.id    and 
(b.name  <> i.name    or   b.telphone  <> i.telphone) 

-- 插入新增的數據 
insert   srv2.庫名.dbo.author(id,name,telphone) 
select   id,name,telphone    from   author   i 
where    not    exists
select    *    from   srv2.庫名.dbo.author    where   id =i.id) 

-- 刪除已經刪除的數據(如果需要的話) 
delete   b   
from   srv2.庫名.dbo.author   b 
where    not    exists
select    *    from   author    where   id =b.id) 
go 

 

轉載:http://topic.csdn.net/u/20101102/22/e1e0b6b1-6612-4904-8176-b4a8450f3530.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM