隱性和顯式空值激活sql server觸發(fā)器的方法
下文將為您詳細(xì)解讀隱性和顯式空值激活sql server觸發(fā)器的方法,供您參考,希望對您學(xué)習(xí)sql server觸發(fā)器的使用能夠有所啟迪。
在列中插入顯式空值,或使用 DEFAULT 關(guān)鍵字為列賦值,都可以按預(yù)期激活觸發(fā)器。同樣,當(dāng)沒有在 INSERT 語句中為列指定值時(shí),sql server觸發(fā)器仍可以在下列條件下激活:
◆由于不存在DEFAULT 定義,列中插入了一個(gè)隱性空值。
◆由于DEFAULT 定義確實(shí)存在,列中插入了一個(gè)默認(rèn)值。
示例:用空值和默認(rèn)值測試sql server觸發(fā)器激活
下列示例表明sql server觸發(fā)器如何受隱性和顯式空值的影響。創(chuàng)建小型表以容納兩個(gè)觸發(fā)器的值。一列包含空值,另一列包含默認(rèn)值。觸發(fā)器評價(jià)上述兩列是否需要修改并且顯示激活觸發(fā)器時(shí)的信息。一系列 INSERT 語句通過插入隱性和顯式空值的組合來測試觸發(fā)器激活。
- 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
【編輯推薦】
查看sql server數(shù)據(jù)庫連接數(shù)的三種方法