自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數(shù)據(jù)庫
觸發(fā)器是個(gè)特殊的存儲(chǔ)過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來觸發(fā),比如當(dāng)對一個(gè)表進(jìn)行操作時(shí)就會(huì)激活它執(zhí)行。下文中為大家介紹如何利用觸發(fā)器實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫間的同步。

若對于同一數(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


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

【編輯推薦】

  1. 如何保存數(shù)據(jù)庫連接參數(shù)代碼及步驟詳解
  2. 講解SQL Server數(shù)據(jù)庫觸發(fā)器的安全隱患
  3. 學(xué)習(xí)基于SQL數(shù)據(jù)庫的算法
責(zé)任編輯:迎迎 來源: 賽迪網(wǎng)
相關(guān)推薦

2011-08-10 16:46:01

DB2數(shù)據(jù)庫觸發(fā)器

2011-03-03 14:04:48

Oracle數(shù)據(jù)庫觸發(fā)器

2011-08-04 11:00:35

Oracle數(shù)據(jù)庫虛擬列復(fù)合觸發(fā)器

2019-10-22 07:50:45

SqlServer數(shù)據(jù)庫觸發(fā)器

2010-09-13 16:46:10

SQL Server觸

2011-08-04 13:31:50

數(shù)據(jù)庫記錄更改日志觸發(fā)器

2010-06-30 09:36:25

SQL Server

2011-04-01 16:35:09

SQL Server數(shù)觸發(fā)器

2011-05-20 14:39:28

2010-07-06 14:47:03

SQL Server數(shù)

2010-07-08 13:48:38

同步兩個(gè)SQLServ

2019-04-30 15:28:46

數(shù)據(jù)庫存儲(chǔ)過程觸發(fā)器

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫同步

2023-11-16 18:03:05

Kafka分布式消息

2011-05-20 14:06:25

Oracle觸發(fā)器

2010-05-18 15:58:39

MySQL觸發(fā)器

2018-08-02 10:14:49

服務(wù)器數(shù)據(jù)庫主從同步

2010-07-23 15:26:29

SQL Server

2024-01-19 09:37:19

MySQL數(shù)據(jù)庫

2024-12-06 08:29:29

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)