SQL Server 跨庫同步數據。本站提示廣大學習愛好者:(SQL Server 跨庫同步數據)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server 跨庫同步數據正文
比來有個需求是要跨庫停止數據同步,兩個數據庫散布在兩台物理盤算機上,主動按期同步可以經由過程SQL Server署理功課來完成,然則條件是須要編寫一個存儲進程來完成同步邏輯處置。這裡的存儲進程用的不是opendatasource,而是用的鏈接辦事器來完成的。存儲進程創立在IP1:192.168.0.3辦事器上,須要將視圖v_custom的客戶信息同步到IP2:192.168.0.10辦事器上的t_custom表中。邏輯是假如不存在則拔出,存在則更新字段。

create PROCEDURE [dbo].[p_pm_項目平台客戶批量同步到報銷平台](
@destserver nvarchar(50),
@sourceserver nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;
--不存在則添加鏈接辦事器,內部查詢必需指明IP地址,例如 select * from [IP].[database].[dbo].[table]
if not exists (select * from sys.servers where server_id!=0 and data_source=@destserver)
begin
exec sp_addlinkedserver @server=@destserver
end
if not exists (select * from sys.servers where server_id!=0 and data_source=@sourceserver)
begin
exec sp_addlinkedserver @server=@sourceserver
end
begin try
set xact_abort on
begin transaction
INSERT INTO [192.168.0.10].[dbCRM].[dbo].[t_custom] (客戶ID,
客戶稱號,
客戶簡稱,
輸出碼,
查詢碼,
地址,
錄入登錄名,
錄入時光,
修正登錄名,
修正時光,
審批狀況ID,
審批狀況稱號,
能否審批停止,
審批操作時光,
項目治理客商編碼,
序號)
SELECT A.客戶ID,A.客戶稱號,
A.客戶簡稱,
dbo.fn_pm_GetPy(A.客戶稱號),
A.客戶編號+','+A.客戶稱號+','+dbo.fn_pm_GetPy(A.客戶稱號)+','+A.客戶簡稱+','+dbo.fn_pm_GetPy(A.客戶簡稱),
A.地址,
'admin',
getdate(),
null,
null,
'D65F87A8-79C8-4D1C-812D-AE4591E056A8',
'已審批',
1,
A.審批操作時光,
A.項目治理客商編碼,
0
FROM [dbPM].[dbo].[v_custom] A
WHERE A.客戶ID NOT IN ( SELECT 客戶ID FROM [192.168.0.10].[dbCRM].[dbo].[t_custom]);
----------------------------------存在更新-----------------------------------
update A set
A.客戶稱號=B.客戶稱號,
A.客戶簡稱=B.客戶簡稱,
A.輸出碼=dbo.fn_pm_GetPy(B.客戶稱號),
A.查詢碼=B.客戶編號+','+B.客戶稱號+','+dbo.fn_pm_GetPy(B.客戶稱號)+','+B.客戶簡稱+','+dbo.fn_pm_GetPy(B.客戶簡稱),
A.地址=B.地址,
A.修正登錄名='admin',
A.修正時光=getdate(),
A.項目治理客商編碼 =B.項目治理客商編碼
from [192.168.0.10].[dbCRM].[dbo].[t_custom] A,[dbPM].[dbo].[v_custom] B
where A.客戶ID=B.客戶ID;
commit transaction
end try
begin catch
select ERROR_NUMBER() as errornumber,ERROR_MESSAGE() as errormsg,ERROR_LINE() as errorline
rollback transaction
end catch
END
假如沒有准確設置裝備擺設,常常會湧現 新聞 7391,級別 16,狀況 2,進程 xxxxx,第 XX 行 。沒法履行該操作,由於鏈接辦事器 "xxxxx" 的 OLE DB 拜訪接口 "SQLNCLI" 沒法啟動散布式事務。
可以參照以下的設置裝備擺設:

以上就是SQL Server 跨庫同步數據的完成辦法,願望對年夜家的進修有所贊助。