Sql-Server
使用 MS SQL Server 插入觸發器後
我想我已經涵蓋了所有基礎,但想問比我更了解的人。這是我的語法。
UPDATE SI SET autoInsert = 0 FROM inserted WHERE SI.autoInsert = SI.autoInsert OR SI.autoInsert IS NULL;
我想設置
autoInsert = 0
whereautoInsert = 1
或autoInsert IS NULL
我將假設您的表上有某種身份或唯一鍵列
SI
。(如果你沒有,這會有點困難。)我還將假設您的
autoInsert
列是 BIT 數據類型。這意味著我們可能擁有的唯一值是 1、0 或 NULL。並且您希望將值更新為 0。最後,我假設您只關心
autoInsert
專欄的更新。如果這一切都是真的,試試這個:
CREATE OR ALTER TRIGGER dbo.trg_ZeroAutoInsert ON dbo.SI AFTER UPDATE AS UPDATE dbo.SI SET autoInsert = 0 FROM dbo.SI INNER JOIN inserted AS i ON SI.id = i.id ;
但是,如果您的
autoInsert
列是 INT(或類似)數據類型,則可以添加 where 子句以僅覆蓋 1 或 NULL 的值:CREATE OR ALTER TRIGGER dbo.trg_ZeroAutoInsert ON dbo.SI AFTER UPDATE AS UPDATE dbo.SI SET autoInsert = 0 FROM dbo.SI INNER JOIN inserted AS i ON SI.id = i.id WHERE i.autoInsert = 1 OR i.autoInsert IS NULL ;