SQL SERVER 各类触发器的完整语法及参数说明(拓展)

语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH dml_trigger_option [ ,…n ] ]{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [

语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH [ ,…n ] ]{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,…n ] | EXTERNAL NAME } ::=[ ENCRYPTION ][ EXECUTE AS Clause ] ::= assembly_name.class_name.method_name
Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE, or UPDATE STATISTICS statement (DDL Trigger)CREATE TRIGGER trigger_name ON { ALL SERVER | DATABASE } [ WITH [ ,…n ] ]{ FOR | AFTER } { event_type | event_group } [ ,…n ]AS { sql_statement [ ; ] [ ,…n ] | EXTERNAL NAME [ ; ] } ::=[ ENCRYPTION ][ EXECUTE AS Clause ] ::= assembly_name.class_name.method_name
Trigger on a LOGON event (Logon Trigger)CREATE TRIGGER trigger_name ON ALL SERVER [ WITH [ ,…n ] ]{ FOR| AFTER } LOGON AS { sql_statement [ ; ] [ ,…n ] | EXTERNAL NAME [ ; ] } ::=[ ENCRYPTION ][ EXECUTE AS Clause ] ::= assembly_name.class_name.method_name 参数:schema_name

dml 触发器所属架构的名称。dml 触发器的作用域是为其创建该触发器的表或视图的架构。对于 ddl 或登录触发器,无法指定 schema_name。

trigger_name

触发器的名称。trigger_name 必须遵循 标识符规则,但 trigger_name 不能以 # 或 ## 开头。

table | view

对其执行 DML 触发器的表或视图,有时称为触发器表或触发器视图。可以根据需要指定表或视图的完全限定名称。视图只能被 INSTEAD OF 触发器引用。不能对局部或全局临时表定义 DML 触发器。

DATABASE

将 DDL 触发器的作用域应用于当前数据库。如果指定了此参数,则只要当前数据库中出现 event_type 或 event_group,就会激发该触发器。

ALL SERVER

将 DDL 或登录触发器的作用域应用于当前服务器。如果指定了此参数,则只要当前服务器中的任何位置上出现 event_type 或 event_group,就会激发该触发器。

WITH ENCRYPTION

对 CREATE TRIGGER 语句的文本进行模糊处理。使用 WITH ENCRYPTION 可以防止将触发器作为 SQL Server 复制的一部分进行发布。不能为 CLR 触发器指定 WITH ENCRYPTION。

EXECUTE AS

指定用于执行该触发器的安全上下文。允许您控制 SQL Server 实例用于验证被触发器引用的任意数据库对象的权限的用户帐户。

FOR | AFTER

AFTER 指定 DML 触发器仅在触发 SQL 语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。

如果仅指定 FOR 关键字,则 AFTER 为默认值。

不能对视图定义 AFTER 触发器。

INSTEAD OF

指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发语句的操作。不能为 DDL 或登录触发器指定 INSTEAD OF。

对于表或视图,每个 INSERT、UPDATE 或 DELETE 语句最多可定义一个 INSTEAD OF 触发器。但是,可以为具有自己的 INSTEAD OF 触发器的多个视图定义视图。

INSTEAD OF 触发器不可以用于使用 WITH CHECK OPTION 的可更新视图。如果将 INSTEAD OF 触发器添加到指定了 WITH CHECK OPTION 的可更新视图中,则 SQL Server 将引发错误。用户须用 ALTER VIEW 删除该选项后才能定义 INSTEAD OF 触发器。

{ [DELETE] [,] [INSERT] [,] [UPDATE] }

指定数据修改语句,这些语句可在 DML 触发器对此表或视图进行尝试时激活该触发器。必须至少指定一个选项。在触发器定义中允许使用上述选项的任意顺序组合。

对于 INSTEAD OF 触发器,香港虚拟主机,不允许对具有指定级联操作 ON DELETE 的引用关系的表使用 DELETE 选项。同样,也不允许对具有指定级联操作 ON UPDATE 的引用关系的表使用 UPDATE 选项。

event_type

执行之后将导致激发 DDL 触发器的 Transact-SQL 语言事件的名称。DDL 事件中列出了 DDL 触发器的有效事件。

event_group

预定义的 Transact-SQL 语言事件分组的名称。执行任何属于 event_group 的 Transact-SQL 语言事件之后,都将激发 DDL 触发器。DDL 事件组中列出了 DDL 触发器的有效事件组。

CREATE TRIGGER 运行完毕之后,event_group 还可通过将其涵盖的事件类型添加到 sys.trigger_events 目录视图中来作为宏使用。

WITH APPEND

指定应该再添加一个现有类型的触发器。仅当兼容级别等于或低于 65 时,才需要使用此可选子句。如果兼容级别等于或高于 70,则不需要使用 WITH APPEND 子句来添加现有类型的其他触发器。这是兼容级别设置等于或高于 70 的 CREATE TRIGGER 的默认行为。WITH APPEND 不能与 INSTEAD OF 触发器一起使用。如果显式声明了 AFTER 触发器,则也不能使用该子句。仅当为了向后兼容而指定了 FOR 时(但没有 INSTEAD OF 或 AFTER)时,才能使用 WITH APPEND。如果指定了 EXTERNAL NAME(即触发器为 CLR 触发器),则不能指定 WITH APPEND。

NOT FOR REPLICATION

指示当复制代理修改涉及到触发器的表时,不应执行触发器。有关详细信息,请参阅使用 NOT FOR REPLICATION 来控制约束、标识和触发器。

sql_statement

触发条件和操作。触发器条件指定其他标准,用于确定尝试的 DML、DDL 或 logon 事件是否导致执行触发器操作。

尝试上述操作时,将执行 Transact-SQL 语句中指定的触发器操作。

触发器可以包含任意数量和种类的 Transact-SQL 语句,但也有例外。触发器的用途是根据数据修改或定义语句来检查或更改数据;它不应向用户返回数据。触发器中的 Transact-SQL 语句常常包含控制流语言。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1844832.html

(0)
上一篇 2025年2月22日 00:39:20
下一篇 2025年2月22日 00:39:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • java正则表达式语法有哪些

    java正则表达式的基本语法有元字符、预定义模式、字符类、数量词的修饰符、转义、分组、非捕获分组、前瞻断言、命名捕获组、后向引用等。详细介绍:1、元字符:“.”:匹配任何单个字符(除了换行符);“^”:匹配输入字符串的开始位置;“$”:匹配…

    2025年3月13日
    200
  • Java正则表达式语法的关键要点迅速掌握

    快速掌握Java正则表达式语法的关键要点,需要具体代码示例 正则表达式是一种用于匹配和查找字符串的强大工具。在Java编程中,正则表达式可以用来对字符串进行模式匹配、替换和分割操作。本文将介绍快速掌握Java正则表达式语法的关键要点,并提供…

    2025年3月13日
    200
  • 简单整理HTML5的基本特性和语法_html5教程技巧

    html5 概述html5 是 html 标准的下一个重要版本,用来替代 html 4.01,xhtml 1.0 以及 xhtml 1.1。html5 也是一种在万维网上构建和呈现内容的标准。 HTML5 是万维网联盟(W3C)和网页超文本…

    编程技术 2025年3月11日
    200
  • Html5 语法与规则简要概述

    html5不区分大小写、省略关闭空元素的斜杠,属性值中只要不包含(> = 或者空格)等受限的字符,就可以不用加引号  1、Html5不区分大小写 2、Html5 省略关闭空元素的斜杠;空元素,就是不会嵌套内容的元素,例如:  3、属性…

    编程技术 2025年3月11日
    200
  • CSS教程(二)基础语法

    1.  基本语法 css的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。基本格式如下:selector {property: value} (选择符 {属性:值})选择符是可以是多…

    2025年3月11日
    200
  • 了解id选择器的语法规则

    探索id选择器的语法原理,需要具体代码示例 CSS 是一种用于网页样式设计的语言,它强大而灵活,使我们能够通过样式表来改变网页的外观和布局。在 CSS 中,选择器是一种用于选择网页元素的模式。其中,id 选择器是一种非常重要且常用的选择器。…

    2025年3月10日
    200
  • 掌握id选择器的语法使用方法

    学习id选择器的语法使用方法,需要具体代码示例 在学习CSS(层叠样式表)时,了解和掌握选择器的语法和使用方法是非常重要的。其中,id选择器是一种常用的选择器,它允许我们通过给HTML元素添加id属性,通过该属性来选择特定的元素并对其应用样…

    2025年3月10日
    200
  • 学会使用CSS选择器的基本语法

    掌握基本的CSS选择器语法,需要具体代码示例 CSS选择器是前端开发中非常重要的一部分,它可以用来选择和修改HTML文档的各个元素。掌握基本的CSS选择器语法对于编写高效的样式表是至关重要的。本文将介绍一些常见的CSS选择器以及对应的代码示…

    2025年3月10日
    200
  • CSS中contain属性的作用和语法

    CSS中contain的语法的作用 在CSS中,contain是一个很有用的属性,它可以影响元素的布局和渲染。它的主要作用是告诉浏览器如何处理元素的内容,并控制元素与其他元素之间的关系。 contain属性有四个可选值:none、stric…

    2025年3月10日
    200
  • Edge浏览器如何添加拓展才能倍速播放?Edge浏览器倍速看视频方法

    php小编香蕉为您分享edge浏览器如何添加拓展以实现倍速播放视频的方法。通过简单的步骤,您可以轻松在edge浏览器上安装适用的拓展,实现倍速播放视频的功能。这个小技巧能够帮助您更高效地观看视频内容,节省宝贵的时间,提升用户体验。让我们一起…

    2025年3月9日 互联网
    200

发表回复

登录后才能评论