语法:在表或表上插入、更新或删除语句的Trigger。
{ } trigger_name schema_name创建触发器。
表观| { }
{用{,…} }
在相反| | { }
{ { },},更新},{ } }
{加}
{不用于复制}
作为sql_statement { { };{ } } |名称外…

::=
{密码}
{
执行as子句}

::=
assembly_name.class_name.method_name


在创建、更改、删除、授予、拒绝、撤消或更新统计数据时触发。
创建触发器trigger_name
在所有服务器的数据库| { }
{用{,…} }
{在} { } {后event_type | | event_group,n }…
作为sql_statement { { };{ }外部名称,…| { } };

::=
{密码}
{ as as子句}

::=
assembly_name.class_name.method_name


登录事件上的触发器(Logon Trigger)
创建触发器trigger_name
在所有的服务器
{用{,…} }
{ }为|后登录
作为sql_statement { { };{ }外部名称,…| { } };
::=
{密码}
{ as as子句}

::=
assembly_name.class_name.method_name

参数:

schema_name

的DML触发器属于建筑的名称,范围是DML触发器的表或视图创建触发它的架构,DDL或登录触发器,schema_name不能指定。

trigger_name

该trigger.trigger_name名称必须遵循标识符的规则,但不trigger_name或# # #开始。

表观|

DML触发器的表或视图的实现,有时被称为触发器的表或视图的触发器。根据需要指定的表或视图的完全限定名,看来只能是触发参考。不能对局部或全局临时表定义DML触发器。

数据库

DDL触发器的当前数据库中的应用范围。如果指定此参数,只要在event_type或event_group当前数据库,将刺激触发。

所有服务器

将DDL或登录触发器范围当前服务器。如果指定此参数,触发是只要event_type或event_group出现在当前服务器的任何位置兴奋。

与加密

创建触发器语句的文本是模糊处理。使用加密防止触发器作为SQL Server复制的一部分释放。不能为CLR触发器指定加密。

执行

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

在|

通过指定一个DML触发器被触发时触发的SQL语句中指定的所有操作已成功执行。所有的引用级联操作和约束检查也必须成功地完成了在这之前触发激动。

如果只指定for关键字,则后面是默认值。

无法为视图定义后触发器。

而不是

DML触发器而不是触发指定的SQL语句,所以它的优先级高于触发statement.instead的行动不能被指定为DDL或登录触发器。

一个表或视图,每个插入、更新或删除语句可以定义INSTEADOF触发器最多。但是,你可以定义你自己的而不是触发多个视图。

The INSTEAD OF trigger can not be used to use the updatable view of the WITH CHECK OPTION.If the INSTEAD OF trigger is added to the updated view of the specified WITH CHECK OPTION, SQL Server will cause an error.The user must delete this option with ALTER VIEW to define the INSTEAD OF trigger.

{ { },},{ },{ }

指定数据修改语句,可以激活时触发一个DML触发器通过该表或视图。必须至少指定一个选项,该选项的组合任意序列在触发器定义允许。

对于触发器,不允许与一个具有指定级联操作的引用关系表的删除选项。同样地,不允许使用更新选项与具有更新的指定级联操作的引用关系表一起使用。

event_type

在Transact-SQL语言事件将导致DDL触发器被执行后,执行名义,DDL触发器的有效事件在DDL事件上市。

event_group

预定义的名称Transact-SQL语言事件组。执行任何Transact-SQL语言事件属于event_group后,DDL触发器将被激发,DDL触发器的有效事件组的DDL事件组上市。

创建触发器的运行后,event_group也可以作为加入其覆盖类型sys.trigger_events目录查看宏。

与添加

指定触发现有类型应增加。这个可选子句仅当兼容级别等于或低于65的要求。如果兼容级别等于或高于70,你不需要使用有附加条款添加其他触发的现有类型。这是默认行为创建触发器,或高于70.with附加不能使用INSTEADOF触发器兼容。如果触发后显式声明的条款,不可使用附加只能用于当(但不能代替或之后)是为向后兼容的规定。如果指定的名称(即外部,触发器是CLR触发器),与添加不能指定。

不复制

这表明当复制代理修改涉及触发器的表时,不应该执行触发器。有关详细信息,请参见不使用复制来控制约束、身份和触发器。

sql_statement

触发条件和操作。触发条件指定其他标准来判断是否尝试DML,DDL或登录事件将导致触发操作的执行。

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

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

DML触发器用删除和插入逻辑(概念)表。它们在结构上类似于定义触发器,即表,试图执行用户的操作表,删除和插入表中保存旧的价值观或是可以由用户更改的行为新值。例如,找回删除的表中的所有值,使用:

*选择
从删除

DDL和登录触发器的触发事件,得到关于使用EVENTDATA信息(Transact-SQL)功能。

在删除、插入或更新触发器,如果兼容级别设置为70,SQL Server不允许文本、ntext或image列引用在插入和删除的表。文字、ntext值,并在插入的和删除的表的图像不能访问,检索一个新值在INSERT或UPDATE触发器,加入插入表与原始更新表。如果兼容级别等于或小于65,它将返回插入或删除的文字空值、ntext或image列允许空值。如果列不能为空,则返回零长度字符串。

如果兼容级别等于或高于80,SQL Server将允许文本、ntext或image列进行更新,通过替代触发器的表或视图。



对于CLR触发器指定触发绑定组件的方法。这种方法可以没有参数,必须返回到零value.class_name必须是一个有效的SQL Server标识符和类必须在可见的程序集存在。如果类有一个单独的使用。命名空间名称空间限定名称的一部分,则类名必须分隔{或}。