当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

隐性和显式空值激活sql server触发器的办法[MSSQL防范]

赞助商链接



  本文“隐性和显式空值激活sql server触发器的办法[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

下文将为您具体解读隐性和显式空值激活sql server触发器的办法,供您参考,但愿对您学习sql server触发器的利用可以有所启迪.

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

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

◆由于DEFAULT 定义确切存在,列中插入了一个默许值.

示例:用空值和默许值测试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 = 1b = 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 = NULLb = 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 = 2b = DEFAULT 
<
  以上是“隐性和显式空值激活sql server触发器的办法[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 隐性和显式空值激活sql server触发器的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .