当前位置:首页 >知识 >隐性和显式空值激活sql server触发器的方法 sql server触发器仍可以激活

隐性和显式空值激活sql server触发器的方法 sql server触发器仍可以激活

2024-06-25 19:41:08 [百科] 来源:避面尹邢网

隐性和显式空值激活sql server触发器的隐性方法

作者:佚名 数据库 SQL Server 在列中插入了一个隐性空值或者插入了一个默认值的条件下,sql server触发器仍可以激活,和显活下面就将为您介绍这种方法,式空希望对您有所帮助。值激

下文将为您详细解读隐性和显式空值激活sql server触发器的隐性方法,供您参考,和显活希望对您学习sql server触发器的式空使用能够有所启迪。

在列中插入显式空值,值激或使用 DEFAULT 关键字为列赋值,隐性都可以按预期激活触发器。和显活同样,式空当没有在 INSERT 语句中为列指定值时,值激sql server触发器仍可以在下列条件下激活:

隐性和显式空值激活sql server触发器的方法 sql server触发器仍可以激活

◆由于不存在DEFAULT 定义,隐性列中插入了一个隐性空值。和显活

隐性和显式空值激活sql server触发器的方法 sql server触发器仍可以激活

◆由于DEFAULT 定义确实存在,式空列中插入了一个默认值。

隐性和显式空值激活sql server触发器的方法 sql server触发器仍可以激活

示例:用空值和默认值测试sql server触发器激活

下列示例表明sql server触发器如何受隐性和显式空值的影响。创建小型表以容纳两个触发器的值。一列包含空值,另一列包含默认值。触发器评价上述两列是否需要修改并且显示激活触发器时的信息。一系列 INSERT 语句通过插入隐性和显式空值的组合来测试触发器激活。

  1. CREATE TABLE t1  
  2. (a int NULL, b int NOT NULL DEFAULT 99)  
  3. GO  
  4.  
  5. CREATE TRIGGER t1trig  
  6. ON t1  
  7. FOR INSERT, UPDATE  
  8. AS  
  9. IF UPDATE(a) AND UPDATE(b)  
  10.    PRINT 'FIRING'  
  11. GO  
  12.  
  13. --When two values are inserted, the UPDATE is TRUE for   
  14. both columns and the trigger is activated.  
  15. INSERT t1 (a, b)   
  16. VALUES (1, 2)   
  17.  
  18. --When two values are updated, the UPDATE is TRUE for   
  19. both columns and the trigger is activated.  
  20. UPDATE t1   
  21. SET a = 1, b = 2 
  22.  
  23. --When an explicit NULL is inserted in column a,  
  24. the UPDATE is TRUE for both columns and the trigger is activated.  
  25. INSERT t1  
  26. VALUES (NULL, 2)  
  27.  
  28. --When an explicit NULL is updated in column a,   
  29. the UPDATE is TRUE for both columns,the trigger is activated.  
  30. UPDATE t1   
  31. SET a = NULL, b = 2 
  32.  
  33. --When an implicit NULL is inserted in column a,  
  34.  the UPDATE is TRUE for both columns and the trigger is activated.  
  35. INSERT t1 (b)  
  36. VALUES (2)  
  37.  
  38. --When column a is updated with an implicit NULL,  
  39.  the UPDATE is FALSE for both columns and the trigger is not activated.  
  40. UPDATE t1   
  41. SET b = 2 
  42.  
  43. --When the default value is implicitly inserted in column b,   
  44. the UPDATE is TRUE for both columns and the trigger is activated.  
  45. INSERT t1 (a)  
  46. VALUES (2)  
  47.  
  48. --When column b is updated with an implicit NULL,   
  49. the UPDATE is FALSE for both columns and the trigger is not activated.  
  50. UPDATE t1   
  51. SET a = 2 
  52.  
  53. --When the default value is explicitly inserted in column b,   
  54. the UPDATE is TRUE for both columns and the trigger is activated.  
  55. INSERT t1 (a, b)  
  56. VALUES (2, DEFAULT)  
  57.  
  58. --When column b is updated explicitly with the default value,   
  59. the UPDATE is TRUE for both columns and the trigger is activated.  
  60. UPDATE t1   
  61. SET a = 2, b = DEFAULT 

 

 

 

【编辑推荐】

教您如何查看Sql Server数据文件

查看sql server数据库连接数的三种方法

sql server数据库文件的压缩方法

sql server字符串的类型

sql server字符串截取实例分析

 

 

责任编辑:段燃 来源: 赛迪网 sql server触发器

(责任编辑:热点)

    推荐文章
    热点阅读