SQL触发器语法参考

发表于:2010-8-09 14:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:david_5200    来源:51Testing软件测试网采编

  昨天写了第一个触发器,今天在要研究触发器的语法

  SQL触发器语法参考

 CreateTRIGGER trigger_name
 ON { table | view }
 [ WITH ENCRYPTION ]
 {
     { { FOR |AFTER | INSTEAD OF } { [ Insert ] [ , ] [ Update ] }
       [ WITH APPEND ]
       [ NOT FOR REPLICATION ]
       AS
       [ { IF Update ( column )
           [ { AND | or } Update ( column ) ]
               [ ...n ]
       | IF ( COLUMNS_UpdateD ( ) { bitwise_operator } updated_bitmask)
               { comparison_operator } column_bitmask [ ...n ]
       } ]
       sql_statement [ ...n ]
     }
 }

  参数

  trigger_name

   是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一。可以选择是否指定触发器所有者名称。

  Table|view

   是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。

  WITH ENCRYPTION

  加密syscomments表中包含Create TRIGGER语句文本的条目。使用WITH ENCRYPTION可防止将触发器作为SQL Server复制的一部分发布。

  AFTER

  指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。

  如果仅指定FOR关键字,则AFTER是默认设置。

  不能在视图上定义 AFTER 触发器。

  INSTEAD OF

  指定执行触发器而不是执行触发 SQL语句,从而替代触发语句的操作。

  在表或视图上,每个Insert、Update或Delete语句最多可以定义一个INSTEAD OF 触发器。然而,可以在每个具有INSTEAD OF触发器的视图上定义视图。

  INSTEAD OF触发器不能在WITH CHECK OPTION的可更新视图上定义。如果向指定了 WITH CHECK OPTION选项的可更新视图添加 INSTEAD OF 触发器,SQL Server将产生一个错误。用户必须用Alter VIEW删除该选项后才能定义INSTE ADOF触发器。

  { [Delete] [,] [Insert] [,][Update] }

  是指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。必须至少指定一个选项。在触发器定义中允许使用以任意顺序组合的这些关键字。如果指定的选项多于一个,需用逗号分隔这些选项。

  对于INSTEAD OF触发器,不允许在具有ON Delete级联操作引用关系的表上使用Delete选项。同样,也不允许在具有ONUpdate级联操作引用关系的表上使用Update选项。

  WITH APPEND

  指定应该添加现有类型的其它触发器。只有当兼容级别是 65或更低时,才需要使用该可选子句。如果兼容级别是70或更高,则不必使用WITH APPEND子句添加现有类型的其它触发器(这是兼容级别设置为 70 或更高的 CreateTRIGGER 的默认行为)。有关更多信息请参见sp_dbcmptlevel。

61/6123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号