2016-05-11 26 views
0

私はちょうどそれが「0」から「HASCHANGED」の値を変更することは不可能だ問題...条件付きSQL Serverのトリガー

create trigger [dbo].[haschangedTD_WFM_Client] 
on [dbo].[TD_WFM_Client] 
for update 
as 
    update TD_WFM_Client 
    set haschanged = 1 
    from TD_WFM_Client 
    inner join inserted on TD_WFM_Client.ID = inserted.ID 

あなたはおそらくれるように原因となっているテーブルの上に既存のトリガを発見しました私は、次のSQLを実行した場合、の値が「0」に変更し、「HASCHANGED」通知は、トリガがでジャンプし、そこで、「1」

UPDATE dbo.TD_WFM_Client 
SET HasChanged = 0 
WHERE (Id = 560552) 

に変更し、私はそのトリガーを記述しようとしています私はトリガーを発射することなくそのSQLを更新することができます..

私はそれを行うロジックと構文を理解できません。

実際には可能なのでしょうか?

任意のSQL gurusは役に立ちますか?

+1

あなたが '無効trigger'をしたいですか? https://msdn.microsoft.com/en-us/library/ms189748.aspx –

+0

ああ、更新SQLを実行する前にトリガーを無効にすることをお勧めしますか? - そうするかもしれない! –

答えて

2

あなたは自分の更新ステートメント中にトリガーを無効にする、新しいトリガを作成する必要はありません。

DISABLE TRIGGER [dbo].[haschangedTD_WFM_Client] on [dbo].[TD_WFM_Client] 

UPDATE dbo.TD_WFM_Client 
SET HasChanged = 0 
WHERE (Id = 560552) 

ENABLE TRIGGER [dbo].[haschangedTD_WFM_Client] on [dbo].[TD_WFM_Client]