如何在插入時,自動修正記錄的內容
阿新 • • 發佈:2018-12-25
需求:
有一個欄位insert或update時,提交了內容aaa,但我想把aaa替換成bbb儲存下來,但又不能改程式,要求比較實時的, 不希望用定時任務。
USE tempdb GO IF OBJECT_ID('t') IS NOT NULL DROP TABLE t IF OBJECT_ID('trig_t_I') IS NOT NULL DROP TABLE trig_t_I GO CREATE TABLE t( id INT IDENTITY(1,1) PRIMARY KEY, n NVARCHAR(20) ) GO -- ============================================= -- Author: yenange -- Create date: 2018-12-20 -- Description: -- ============================================= CREATE TRIGGER trig_t_I ON dbo.t AFTER INSERT,UPDATE AS BEGIN SET NOCOUNT ON; IF EXISTS(SELECT 1 FROM INSERTED WHERE n='aaa') BEGIN UPDATE t SET n='bbb' FROM INSERTED AS b WHERE t.id=b.id AND b.n='aaa' END END GO SET NOCOUNT ON INSERT INTO t SELECT 'aaa' UNION ALL SELECT 'bbb' UNION ALL SELECT 'ccc' SELECT * FROM t /* id n ----------- -------------------- 1 bbb 2 bbb 3 ccc */