主页 > 知识库 > SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器

SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器

热门标签:威海智能语音外呼系统 智能语音外呼系统哪个牌子好 北京办理400电话多少 温州语音外呼系统代理 南京电销外呼系统运营商 400电话申请需要开户费吗 重庆防封电销机器人供应商 西安青牛防封电销卡 山西语音外呼系统价格

误区 #4: DDL触发器(SQL Server 2005之后被引入)就是INSTEAD OF触发器

这是错误的

    DDL触发器的实现原理其实就是一个AFTER触发器。这个意思是先发生DDL操作,然后触发器再捕捉操作(当然如果你在触发器内写了Rollback,则也可能回滚)。

    存在Rollback也意味着这个触发器并不像你想象的那么轻量,来看下面的例子:

    ALTER TABLE MyBigTable ADD MyNewNonNullColumn VARCHAR (20) DEFAULT 'Paul'

    如果存在一个defined for ALTER_TABLE事件的DDL触发器,或是一个更宽泛的事件比如DDL_TABLE_EVENTS。上面那个DDL代码将会对表中每一行数据加进新列,之后触发触发器操作。如果你的触发器中存在回滚来阻止DDL操作发生,那么这个代价可不小(不信的话你自己看看这么做后产生的日志)。

    当然更好的办法是对ALTER设置GRANT或是DENY权限,或是仅仅允许通过你创建的存储过程进行DDL操作。

    但不管怎么样,虽然DDL触发器可以达到禁止DDL的操作的目的,但代价昂贵。而DDL触发器的好处是允许记录某些人做了某些修改表之类的操作,所以我并不是说不允许DDL触发器,而是要小心使用。

    Kimberly有一篇非常好的关于DDL触发器的博文:"EXECUTE AS" and an important update your DDL Triggers (for auditing or prevention)”。

您可能感兴趣的文章:
  • 关于喜忧参半的SQL Server触发器详解
  • 利用SQL Server触发器实现表的历史修改痕迹记录
  • SQLSERVER对加密的存储过程、视图、触发器进行解密(推荐)
  • SQL Server 使用触发器(trigger)发送电子邮件步骤详解
  • SQL Server实现用触发器捕获DML操作的会话信息【实例】
  • SQL Server:触发器实例详解
  • SqlServer触发器详解
  • SqlServer实现类似Oracle的before触发器示例
  • SQL SERVER中各类触发器的完整语法及参数说明
  • SQL SERVER 触发器介绍
  • SQL Server 触发器详情

标签:河源 济宁 贷款群呼 中卫 金昌 宜春 黄山 新余

巨人网络通讯声明:本文标题《SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器》,本文关键词  SQL,Server,误区,30日谈,第,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器》相关的同类信息!
  • 本页收集关于SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器的相关信息资讯供网民参考!
  • 推荐文章