新聞中心
若對于同一數(shù)據(jù)庫實例中的兩個數(shù)據(jù)庫進行同步則直接對數(shù)據(jù)庫表創(chuàng)建Trigger。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、唐山ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的唐山網(wǎng)站制作公司
SQL Server 2005的聯(lián)機幫助:
Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ...n ] | EXTERNAL NAME }
::= [ ENCRYPTION ] [ EXECUTE AS Clause ]
::= assembly_name.class_name.method_name
以下是一個例子
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- Create date: 2007-12-24
-- Description:
CREATE TRIGGER [Trigger_Add_Carduser]
ON [dbo].[carduser]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
set insert ParkFee.dbo.card_user(card_user_id,card_user_name,sex)
select card_user_id,card_user_name,sex from inserted
END
說明:
上例實現(xiàn)了為當前數(shù)據(jù)庫中表carduser創(chuàng)建觸發(fā)器當插入數(shù)據(jù)時,同步向ParkFee數(shù)據(jù)庫表dbo.card_user插入數(shù)據(jù),從而達到同步插入。類同,可將insert語句改為update,delete。
注意:
若想利用此方法達到反向同步則可能出現(xiàn)問題,比如想在parkfee數(shù)據(jù)庫有新數(shù)據(jù)插入時讓當前數(shù)據(jù)庫也同時插入一條記錄,建立一個觸發(fā)器,則形成了一個循環(huán)觸發(fā),當插入數(shù)據(jù)時會報大于***遞歸次數(shù)錯。因此因避免這樣的觸發(fā)循環(huán),若要達到類似效果還須想別的方法。(待續(xù))
補充:
若兩個庫處于不同的數(shù)據(jù)庫服務(wù)器則應(yīng)先進行以下操作:
在 server1 上創(chuàng)建連接服務(wù)器,以便在 server1 中操作 server2,實現(xiàn)同步
exec sp_addlinkedserver 'server2','','SQLOLEDB','server2的數(shù)據(jù)庫實例名或ip'
exec sp_addlinkedsrvlogin 'server2','false',null,'用戶名','密碼'
go
網(wǎng)站標題:如何利用觸發(fā)器實現(xiàn)兩個數(shù)據(jù)庫間的同步
網(wǎng)站地址:http://www.dlmjj.cn/article/cddscie.html


咨詢
建站咨詢
