欢迎来到天天文库
浏览记录
ID:9738143
大小:65.50 KB
页数:8页
时间:2018-05-07
《如何制定自己的sqlserver2000触发器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、如何制定自己的SQLServer2000触发器>>教育资源库 本文从定义入手仔仔细细的来讲解如何制定自己的触发器。 创建一个简单的触发器 触发器是一种特殊的存储过程,类似于事件函数,SQLServer™允许为INSERT、UPDATE、DELETE创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列T-SQL语句。 触发器可以在查询分析器里创建,也可以在表名上点右键->所有任务->管理触发器来创建,不过都是要写T-SQL语句的,只是在查询分析器里要先确定当前
2、操作的数据库。 创建触发器用CREATETRIGGERCREATETRIGGER触发器名称ON表名FORINSERT、UPDATE或DELETEAS T-SQL语句 注意:触发器名称是不加引号的。 如下是联机丛书上的一个示例,当在titles表上更改记录时,发送邮件通知MaryM。CREATETRIGGERreminderONtitlesFORINSERT,UPDATE,DELETEAS EXECmaster..xp_sendmail'MaryM', 'Don
3、39;'tforgettoprintareportforthedistributors.' 重命名触发器 用查询分析器重命名: execsp_rename原名称,新名称 sp_rename是SQLServer™自带的一个存储过程,用于更改当前数据库中用户创建的对象的名称,如表名、列表、索引名等。 用企业管理器重命名: 在表上点右键->所有任务->管理触发器,选中所要重命名的触发器,修改触发器语句中的触发器名称,点击确定。 删除触发器 用查询分析
4、器删除: 在查询分析器中使用droptrigger触发器名称来删除触发器。 也可以同时删除多个触发器:droptrigger触发器名称,触发器名称... 注意:触发器名称是不加引号的。在删除触发器之前可以先看一下触发器是否存在: ifExists(selectnamefromsysobjectse=触发器名称andxtype='TR') 用企业管理器删除: 在企业管理器中,在表上点右键->所有任务->管理触发器,选中所要删除的触发器,然后点击删除。 如何查看
5、某个触发器的内容 用查询分析器查看:use数据库名goexecsp_helptext'触发器名称' 将会以表的样式显示触发器内容。 除了触发器外,sp_helptext还可以显示规则、默认值、未加密的存储过程、用户定义函数、视图的文本。 用企业管理器查看: 在表上点右键->所有任务->管理触发器,选择所要查看的触发器。 如何查看当前数据库中有哪些触发器 在查询分析器中运行:use数据库名goselect*fromsysobjectse一列,我们可以看到触发器
6、名称。sp_helptrigger 存储过程sp_helptrigger用于查看触发器的属性。 sp_helptrigger有两个参数:第一个参数为表名;第二个为触发器类型,为char(6)类型,可以是INSERT、UPDATE、DELETE,如果省略则显示指定表中所有类型触发器的属性。 例:use数据库名goexecsp_helptriggertbl 触发器更多语法 INSTEADOF: 执行触发器语句,但不执行触发触发器的SQL语句,比如试图删除一条记录时,将执行触发器指定的语句,此
7、时不再执行delete语句。例:createtriggerfontblinsteadofdeleteasinsertintoLogs... IFUPDATE(列名): 检查是否更新了某一列,用于insert或update,不能用于delete。例:createtriggerfontblforupdateasifupdate(status)orupdate(title)sql_statement--更新了status或title列 inserted、deleted: 这是两个虚拟表,inser
8、ted保存的是insert或update之后所影响的记录形成的表,deleted保存的是delete或update之前所影响的记录形成的表。例:createtriggertbl_deleteontblfordeleteas declaretitlevarchar(200) selecttitle=titlefromdeleted insertintoLogs(logContent)>>>这篇文章来自..,。>values('删除了title为:'
此文档下载收益归作者所有