2017-01-03 30 views
1

我有2個數據庫test1test2。假設我有一個系統,它更新數據庫test1中的特定值。跨多個數據庫的SQL Server 2014觸發器

現在我想創建一個觸發器,放在數據庫test2中檢查數據庫test1是否更新值。

當它更新時,我想寫一些東西到數據庫test2

我有以下觸發試了一下:

ALTER TRIGGER [dbo].[testtrigger] 
ON [test2].[dbo].[naam2] 
AFTER UPDATE ON [test1].[dbo].[naam] 

不過,我在得到一個語法錯誤:

附近有語法錯誤 'ON'。期待',',AS,NOT_FOR或WITH

現在我想知道爲什麼會發生這種情況。我已經搜索過如何做到這一點,以及所有對ON的提及。

我使用Microsoft SQL Server 2014

我會添加一個圖像,試圖使之更加清楚,如果事實並非如此。 Image of the 2 databases

+1

您無法做到這一點 - 觸發器必須始終處於發生操作的位置 - 您不能擁有「觀察」另一個表的觸發器 - 觸發器在觸發器的表上發生插入,更新或刪除時觸發被定義。 –

回答

1

觸發器是數據庫TEST2,當數據庫test1的變化的表,iwant迴應..

你的語法是wrong..Below是你如何能做到這

概述
create trigger triggername on test1.dbo.table1 
after update 
as 

begin 
insert into test2.dbo.table2 
select * from deleted 

end 
+0

我所做的:。。。 **使用[測試1] [DBO] [NAAM] GO CREATE TRIGGER ON [測試1] [DBO] [NAAM] 更新 作爲 後開始 INSERT INTO [test2]。[dbo]。[naam2] select * from deleted end ** 結果是在** ON **時它仍然給出錯誤。期待ID或Quoted_ID – Mitch

+1

我錯過了triggername,也是你的語法無效,只使用數據庫名稱 – TheGameiswar

+0

好吧,這是工作。但是,它會在數據庫** test1 **中觸發。我的目標是將觸發器保存在數據庫** test2 **中,以便數據庫test1沒有任何觸發器。我想** test2 **數據庫檢查** test1 **數據庫是否有任何更新。 – Mitch