2016-09-06 53 views
1

我有一個很好的觸發器。但是,我發現如果使用應用程序GUI更新項目,觸發器將不允許它在GUI中工作,除非我在多個數據庫中創建項目,觸發器更新。SQL Server triger,只有在另一個數據庫中存在時纔會更新

基本上我想要觸發器運行,但要麼出錯或停止,如果在觸發器更新的其他3個數據庫中不存在相同的UID。

這是我目前的觸發器。

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER TRIGGER [dbo].[trgSecPIN] 
ON [dbo].[cat_validation] 
FOR UPDATE 
AS 
    UPDATE [eqcas02].[dbo].[cat_validation] 
    SET secondarypin = I.secondarypin 
    FROM [eqcas02].[dbo].[cat_validation] 
    JOIN inserted I ON [eqcas02].[dbo].[cat_validation].[name] = I.name 

    UPDATE [eqcas03].[dbo].[cat_validation] 
    SET secondarypin = I.secondarypin 
    FROM [eqcas03].[dbo].[cat_validation] 
    JOIN inserted I ON [eqcas03].[dbo].[cat_validation].[name] = I.name 

    UPDATE [eqcas04].[dbo].[cat_validation] 
    SET secondarypin = I.secondarypin 
    FROM [eqcas04].[dbo].[cat_validation] 
    JOIN inserted I ON [eqcas04].[dbo].[cat_validation].[name] = I.name 
+2

檢查'IF EXISTS'在你的'UPDATE'之前 – techspider

+0

所以我想在UPDATE之前添加這樣的東西? IF EXISTS(SELECT [name] FROM [eqcas02]。[dbo]。[cat_validation] WHERE [name] = [name]或者這個完全不正確? – LazySmerf

+0

我明白了......我錯過了...'SET NOCOUNT on' – LazySmerf

回答

0
FOR UPDATE 
AS 
SET NOCOUNT on 

一旦我加入了NOCOUNT一切都已經正常工作。

相關問題