隱性和顯式空值激活sql server觸發器的方法
下文將為您詳細解讀隱性和顯式空值激活sql server觸發器的方法,供您參考,希望對您學習sql server觸發器的使用能夠有所啟迪。
在列中插入顯式空值,或使用 DEFAULT 關鍵字為列賦值,都可以按預期激活觸發器。同樣,當沒有在 INSERT 語句中為列指定值時,sql server觸發器仍可以在下列條件下激活:
◆由于不存在DEFAULT 定義,列中插入了一個隱性空值。
◆由于DEFAULT 定義確實存在,列中插入了一個默認值。
示例:用空值和默認值測試sql server觸發器激活
下列示例表明sql server觸發器如何受隱性和顯式空值的影響。創建小型表以容納兩個觸發器的值。一列包含空值,另一列包含默認值。觸發器評價上述兩列是否需要修改并且顯示激活觸發器時的信息。一系列 INSERT 語句通過插入隱性和顯式空值的組合來測試觸發器激活。
- CREATE TABLE t1
- (a int NULL, b int NOT NULL DEFAULT 99)
- GO
- CREATE TRIGGER t1trig
- ON t1
- FOR INSERT, UPDATE
- AS
- IF UPDATE(a) AND UPDATE(b)
- PRINT 'FIRING'
- GO
- --When two values are inserted, the UPDATE is TRUE for
- both columns and the trigger is activated.
- INSERT t1 (a, b)
- VALUES (1, 2)
- --When two values are updated, the UPDATE is TRUE for
- both columns and the trigger is activated.
- UPDATE t1
- SET a = 1, b = 2
- --When an explicit NULL is inserted in column a,
- the UPDATE is TRUE for both columns and the trigger is activated.
- INSERT t1
- VALUES (NULL, 2)
- --When an explicit NULL is updated in column a,
- the UPDATE is TRUE for both columns,the trigger is activated.
- UPDATE t1
- SET a = NULL, b = 2
- --When an implicit NULL is inserted in column a,
- the UPDATE is TRUE for both columns and the trigger is activated.
- INSERT t1 (b)
- VALUES (2)
- --When column a is updated with an implicit NULL,
- the UPDATE is FALSE for both columns and the trigger is not activated.
- UPDATE t1
- SET b = 2
- --When the default value is implicitly inserted in column b,
- the UPDATE is TRUE for both columns and the trigger is activated.
- INSERT t1 (a)
- VALUES (2)
- --When column b is updated with an implicit NULL,
- the UPDATE is FALSE for both columns and the trigger is not activated.
- UPDATE t1
- SET a = 2
- --When the default value is explicitly inserted in column b,
- the UPDATE is TRUE for both columns and the trigger is activated.
- INSERT t1 (a, b)
- VALUES (2, DEFAULT)
- --When column b is updated explicitly with the default value,
- the UPDATE is TRUE for both columns and the trigger is activated.
- UPDATE t1
- SET a = 2, b = DEFAULT
【編輯推薦】