IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫MSSQL → 如何利用觸發(fā)器實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫間的同步

如何利用觸發(fā)器實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫間的同步

時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

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

SQL Server 2005的聯(lián)機(jī)幫助:

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


以下是一個(gè)例子


set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go


-- =============================================

-- Author: gsoosg

-- 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

說明:

上例實(shí)現(xiàn)了為當(dāng)前數(shù)據(jù)庫中表carduser創(chuàng)建觸發(fā)器當(dāng)插入數(shù)據(jù)時(shí),同步向ParkFee數(shù)據(jù)庫表dbo.card_user插入數(shù)據(jù),從而達(dá)到同步插入。類同,可將insert語句改為update,delete。

注意:

若想利用此方法達(dá)到反向同步則可能出現(xiàn)問題,比如想在parkfee數(shù)據(jù)庫有新數(shù)據(jù)插入時(shí)讓當(dāng)前數(shù)據(jù)庫也同時(shí)插入一條記錄,建立一個(gè)觸發(fā)器,則形成了一個(gè)循環(huán)觸發(fā),當(dāng)插入數(shù)據(jù)時(shí)會(huì)報(bào)大于最大遞歸次數(shù)錯(cuò)。因此因避免這樣的觸發(fā)循環(huán),若要達(dá)到類似效果還須想別的方法。(待續(xù))

補(bǔ)充:

若兩個(gè)庫處于不同的數(shù)據(jù)庫服務(wù)器則應(yīng)先進(jìn)行以下操作:

在 server1 上創(chuàng)建連接服務(wù)器,以便在 server1 中操作 server2,實(shí)現(xiàn)同步

exec sp_addlinkedserver 'server2','','SQLOLEDB','server2的數(shù)據(jù)庫實(shí)例名或ip'

exec sp_addlinkedsrvlogin 'server2','false',null,'用戶名','密碼'

go

關(guān)鍵詞標(biāo)簽:數(shù)據(jù)庫

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法