电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

创建触发器


发布日期:2020/10/11
 

创建触发器前应考虑下列问题

CREATE TRIGGER 语句必须是批处理中的第一个语句将该批处理中随后的其它所有语句解释为 CREATE TRIGGER 语句定义的一部分

创建触发器的权限默认分配给表的所有者且不能将该权限转给其他用户

触发器为数据库对象其名称必须遵循标识符的命名规则

虽然触发器可以引用当前数据库以外的对象但只能在当前数据库中创建触发器

虽然不能在临时表或系统表上创建触发器但是触发器可以引用临时表不应引用系统表而应使用信息架构视图

在含有用 DELETE 或 UPDATE 操作定义的外键的表中不能定义 INSTEAD OF 和 INSTEAD OF UPDATE 触发器

虽然 TRUNCATE TABLE 语句类似于没有 WHERE 子句(用于删除行)的 DELETE 语句但它并不会引发 DELETE 触发器因为 TRUNCATE TABLE 语句没有记录

WRITETEXT 语句不会引发 INSERT 或 UPDATE 触发器

创建触发器时需指定

名称

在其上定义触发器的表

触发器将何时激发

激活触发器的数据修改语句有效选项为 INSERTUPDATE 或 DELETE多个数据修改语句可激活同一个触发器例如触发器可由 INSERT 或 UPDATE 语句激活

执行触发操作的编程语句

多个触发器

一个表中可有同类型的多个 AFTER 触发器前提条件是它们的名称各不相同每个触发器可以执行多个函数但是每个触发器只能应用于一个表而单个触发器可应用于三个用户操作(UPDATEINSERT 和 DELETE)的任何子集

一个表只能有一个给定类型的 INSTEAD OF 触发器

触发器权限和所有权

CREATE TRIGGER 权限默认授予定义触发器的表所有者sysadmin 固定服务器角色成员以及 db_owner 和 db_ddladmin 固定数据库角色成员并且不可转让

如果在某个视图上创建 INSTEAD OF 触发器则所有关系链将断开(如果视图所有者不同时拥有视图和触发器所引用的基表)对于不属于视图所有者的基表表所有者必须单独地将必要的权限授予正阅读或更新该视图的任何人如果同一用户拥有视图和基础基表则视图和基础基表必须授予其他用户视图的权限而非个别基表的权限

创建触发器

TransactSQL参考(点击查看)

如何创建触发器(企业管理器):

展开服务器组然后展开服务器

展开数据库文件夹展开含触发器的表所属的数据库然后单击文件夹

在详细信息窗格中右击将在其上创建触发器的表指向所有任务菜单然后单击管理触发器命令

名称单击 <新建>

文本框中输入触发器的文本用 CTRLTAB 键来缩进触发器的文本

若要检查语法单击检查语法命令

上一篇:查看存储过程

下一篇:Win XP系统应用技巧完全手册(上)