下面将分别介绍在MS SQLServer 中如何用SQL Server 管理工具Enterprise Manager 和Transaction_SQL 来创建触发器。

在创建触发器以前必须考虑到以下几个方面:

CREATE TRIGGER 语句必须是批处理的第一个语句;

表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它用户;

触发器是数据库对象,所以其命名必须符合命名规则;

尽管在触发器的SQL 语句中可以参照其它数据库中的对象,但是,触发器只能创建在当前数据库中;

虽然触发器可以参照视图或临时表,但不能在视图或临时表上创建触发器,而只能在基表或在创建视图的表上创建触发器;

一个触发器只能对应一个表,这是由触发器的机制决定的;

尽管TRUNCATE TABLE 语句如同没有WHERE 从句的delete 语句,但是由于TRUNCATE TABLE 语句没有被记入日志,所以该语句不能触发delete 型触发器;
WRITETEXT 语句不能触发INSERT 或update 型的触发器。

当创建一个触发器时,必须指定触发器的名字,在哪一个表上定义触发器,激活触发 器的修改语句,如INSERT、 delete、 update。 当然两个或三个不同的修改语句也可 以都触发同一个触发器,如INSERT 和update 语句都能激活同一个触发器。
 
用管理工具Enterprise Manger 创建触发器
其操作步骤如下:
启动Enterprise Manger, 登录到指定的服务器上。
展开数据库,然后展开要在其上创建触发器的表所在的数据库,然后单击该表。
右击鼠标,在弹出菜单中选择ALL Tasks, 然后单击Manage Triggers…。
如下图:
  
在名字框中选择new, 在文本框中输入触发器文本,如下图 所示。
单击Check Syntax 检查语句是否正确。
单击Apply, 在Name 下拉列表中会有新创建的触发器名字。
单击OK, 关闭窗口创建成功。
创建触发器语法如下:
CREATE TRIGGER [trigger_name] ON [dbo].[Table
]
FOR INSERT, update, delete
AS
Sql_statement
各参数的说明如下:

·trigger_name
是用户要创建的触发器的名字触发器的名字,必须符合MS SQL Server 的命名规则,且其名字在当前数据库中必须是惟一的。

·Table
是与用户创建的触发器相关联的表的名字,并且该表已经存在。

·WITH ENCRYPTION
表示对包含有CREATE TRIGGER 文本的syscomments 表进行加密。

·AFTER
表示只有在执行了指定的操作(INSERT、 delete、 update)之后触发器才被激活,执行触发器中的SQL 语句。若使用关键字FOR, 则表示为AFTER 触发器,且该类型触发器仅能在表上创建。

·INSTEAD OF
请参看“12.8 INSTEAD OF 触发器”
[delete] [,] [INSERT] [,] [update]
关键字用来指明哪种数据操作将激活触发器。至少要指明一个选项,在触发器的定义中三者的顺序不受限制,且各选项要用逗号隔开。

·WITH APPEND
表明增加另外一个已存在某一类型触发器。只有在兼容性水平(指某一数据库行为与以前版本的MS SQL Server 兼容程度)不大于65 时才使用该选项。

·NOT FOR REPLICATION
表明当复制处理修改与触发器相关联的表时,触发器不能被执行。

·AS
是触发器将要执行的动作。

 
·Sql_statement
是包含在触发器中的条件语句或处理语句。触发器的条件语句定义了另外的标准来决定将被执行的INSERT、 delete、 update 语句是否激活触发器。
 
·IF update (column)
用来测定对某一确定列是插入操作还是更新操作,但不与删除操作用在一起。
·IF (COLUMNS_updateD())
仅在INSERT 和update 类型的触发器中使用,用其来检查所涉及的列是被更新还是被插入。

 
·Bitwise_operatorj
是在比较中使用的位逻辑运算符。
 
·Pdated_bitmask
是那些被更新或插入的列的整形位掩码。例如,如果表T 包括C1, C2, C3, C4, C5五列。为了确定是否只有C2 列被修改,可用2 来做位掩码,如果想确定是否C1, C2, C3,C4 都被修改,可用14 来做位掩码。
·Comparison_operator
是一比较操作符用“= ”表示检查在updated_bitmask 中定义的所有列是否都被更新,用“>” 表示检查是否在updated_bitmask 中定义的某些列被更新。
 

在SQLSERVER企业管理器中如何创建触发器相关推荐

  1. 数据仓库自动抽取:通过 SQL Server 企业管理器中的数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务...

    本次学习 是为了实现 通过 SQL Server 企业管理器中的 数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务 以实现数据仓库所需数据的自动抽取转换填充 --- ...

  2. sql server 2000企业管理器中没有项目

    问题: 系统xp   sp2      我装的是sql   server   2000个人版           打开企业管理器,目录结构如下:                -----控制台根目录 ...

  3. SQL Server 2000企业管理器中MMC无法创建管理单元的解决方法

    SQL Server2000的企业管理器都会提示"MMC无法创建管理单元",每次都要改注册表键值,现在总结一下操作方法: 2011年1.17遇到此问题,网上找的没用到,最终原因是以 ...

  4. 企业管理器中提示“未见SQL SERVER //BillGates/SQL2000 运行”的解决办法

    删掉重新注册:          企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-- ...

  5. Mysql 中如何创建触发器

    use websitelogdb; #创建表 CREATE TABLE `test` (`idtest` int(11) NOT NULL AUTO_INCREMENT,`testcol` varch ...

  6. sqlserver有外键无法创建触发器_数据库不使用外键的 9 个理由

    点击上方蓝色字体,选择"置顶公众号" 优质文章,第一时间送达 作者 | bang,Piotr Kononow 链接 | www.jdon.com/49188 Piotr Konon ...

  7. SQL学习笔记:服务端配置-如何使用企业管理器

    在这之前不熟悉SQL2000基础知识,搞得下载完别人的VC源码,而SQL却配置不好导致无法测试程序.另外,网上也有很多方法,不过似乎都不太完整,很多地方并没有告诉你该怎么怎么做.... 下面我创建了一 ...

  8. sqlserver阻止保存要求重新创建表的更改

    微软新出了SQL Server 2008 数据库系统.在建完表后,如果要插入任意列,则提示,'阻止保存要求重新创建表的更改',怎么办呢? 当用户在在SQL Server 2008企业管理器中更改表结构 ...

  9. 数据库实验报告【学会使用企业管理器和查询分析器管理工具】

    Hello各位,本系列为数据库实验报告的合集,是我按照<数据库系统概论习题解析与实验指导第5版>中的实验指导写出来的所有报告.这个系列的每一份报告都是我滴原创于是想把自己的劳动成果发出来共 ...

最新文章

  1. 配置Exchange OWA和Sharepoint网站单点登录
  2. 推荐三款scrum看板协作工具
  3. NumPy - ndarray
  4. Maven_在Eclipse中执行Maven命令
  5. struts2的s:iterator 标签 详解
  6. mysql 左连接 怎么走索引_mysql left join查询没走索引
  7. java堆和客栈_java中堆和栈的区别分析
  8. Bootstrap 模态框插件Modal 的方法
  9. 关于CSplitterWnd类窗口静态分割总结
  10. mouseover和mouseenter的区别
  11. C#使用QQ邮箱发送邮件
  12. FontExplorer X Pro for Mac字体管理软件
  13. linux下好用的中文输入法
  14. snapchat为什么_什么是Snapchat?
  15. 长假将至,携程滴滴都太老土了!俺们区块链的出行方式是酱紫的……
  16. pantone潘通色卡对照表_潘通色卡微信版(PANTONE色C面效果)
  17. MTK平台 SIM双卡改成单卡修改
  18. java实现区域生长算法_matlab 区域生长算法生成二值图像边界区域
  19. vue全局配置_silent
  20. 新堂NUC505开发板第一炮-启动篇

热门文章

  1. 解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题...
  2. 在Linux上启动oracle 11g OEM
  3. 视频播放器for android
  4. Linux下的用户和组
  5. JavaScript基于对象编程
  6. dim private public static_PHP中const,static,public,private,protected的区别
  7. ubantu 重启mysql
  8. hdu 2648 Shopping
  9. NSValue包装自定义结构体
  10. 学习使用新浪接口随笔(一)