触发器的创建和使用

触发器的创建和使用

ID:9962490

大小:26.29 KB

页数:0页

时间:2018-05-17

触发器的创建和使用_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《触发器的创建和使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、触发器的创建和使用一、触发器的优点l触发器是自动执行的。当对表中的数据做任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。l触发器可以通过数据库中的相关表进行层叠更改。例如,可以子啊t_student表的s_number列上写入一个删除触发器,以使t_score表中的各匹配行采取删除操作。该触发器用s_number列作为唯一键,在t_score表中对各匹配行进行定位。l触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。二、触发器的类型lAF

2、TER触发器:这种烈性的触发器将在数据变动(INSERT、UPDATE和DELETE操作)完成以后才被出发。可以对变动的数据进行检查,如果发现错误,将拒绝接受或回滚变动的数据。AFTER触发器只能在表上定义。在同一个数据表中可以创建多个AFTER触发器。lINSTEADOF触发器:INSTEADOF触发器是SQLServer2000中新增的功能。这种类型的触发器将在数据变动以前被触发,并取代变动数据的操作(INSERT、UPDATE和DELETE操作),而去执行触发器定义的操作。INSTEADOF触发器可以在表或视图

3、上定义。在表或视图上,每个INSERT、UPDATE和DELETE语句最多可以定义一个INSTEADOF触发器。三、注意事项lCREATETRIGGER语句必须是批处理中的第一个语句。将该批处理中随后的其他所有语句解释为CREATETRIGGER语句定义的一部分。l创建触发器的权期限默分配给表的所有者,且不能讲该权限转给其他用户。l触发器为数据库对象,其名称必须遵循标识符的命名规则。l只能在当前数据库中创建触发器但触发器可以应用当前数据库以外的对象。lTRUNCATETABLE语句不会引发DELETE触发器。lWRI

4、TETEXT语句不会引发INSERT或UPDATE触发器。四、使用Transact-SQL语句创建触发器(1)语法CREATETRIGGERtrigger_nameON{table

5、view}{{{FOR

6、AFTER

7、INSTEADOF}{[DELETE][,][INSERT][,][UPDATE]}[WITHAPPEND][NOTFORREPLICATION]AS[{IFUPDATE(column)[{AND

8、OR}UPDATE(column)][...n]

9、IF(COLUMNS_UPDATED(){bitwise

10、_operator}updated_bitmask){comparison_operator}column_bitmask[...n]}]sql_statement[...n]}}(1)代码意义ltrigger_name:用于指定触发器的名称。触发器的名称必须符合SQLServer标识符规则,并且其名称在当前数据库中必须是唯一的。另外,还可以选择是否指定触发器所有者的名称。ltable

11、view:用于指定在其上执行触发器的表或视图,有时称为触发器表或触发器试图。可以选择是否指定表或视图的所有者名称。lWITHENCR

12、YPTION:用于加密syscomments表中包含CREATETRIGGER语句文本的条目。使用WITHENCRYPTION可防止触发器作为SQLServer复制的一部分发布。lAFTER:用于规定此触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。所有的应用级联操作和约束检查也必须成功完成后,才能执行触发器。如果仅指定FOR关键字,则AFTER是默认设置。注意该类型触发器仅能在表上创建,而不能在视图上定义该触发器。lINSTEADOF:用于规定执行的是触发器而不是执行触发器SQL语句,从而用触发器替

13、代触发语句的操作。在表或视图上,每个INSERT、UPDATE或DELETE语句最多可以定义一个INSTEADOF触发器。INSTEADOF触发器不能在WITHCHECKOPTION的可更新视图上定义。如果只向指定的WITHCHECKOPTION选项的可更新视图添加INSTEADOF触发器,SQLServer将产生一个错误。用户必须用ALTERVIEW删除该选项后才能定义INSTEADOF触发器。l{[DELETE][,][INSERT][,][UPDATE]}:用于指定在表或视图上执行哪些数据修改语句时将激活触发器

14、的关键字。必须至少指定一个选项。在触发器定义中允许以任意顺序组合这些关键字。如果指定的选项多余一个,需用逗号分隔这些选项。lWITHAPPEND:用于指定应该添加现有类型的其他触发器。只有当兼容级别(指某一数据库行为与以前版本的SQLServer兼容程度)是65或更低时,不应执行该触发器。lNOTFORREPLICATION:表示当复制进程更改

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。