MSSQL触发器如何使用
发布网友
发布时间:2022-04-23 21:42
我来回答
共2个回答
热心网友
时间:2022-04-08 11:21
触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,SQL Server? 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-SQL 语句。
本专题的目的并非是向您详尽地介绍触发器,而是系统地向您介绍触发器的常用知识与相关应用,并与您一起探讨应用经验,如果您需要了解触发器不常用的知识点,请参见 SQL Server? 联机丛书(安装 SQL Server? 时默认是安装的)。
a.基础-创建一个简单的触发器
触发器是一种特殊的存储过程,类似于事件函数,SQL Server? 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。
触发器可以在查询分析器里创建,也可以在表名上点右键->“所有任务”->“管理触发器”来创建,不过都是要写 T-SQL 语句的,只是在查询分析器里要先确定当前操作的数据库。
创建触发器用 CREATE TRIGGER
CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS
T-SQL 语句
注意:触发器名称是不加引号的。
如下是联机丛书上的一个示例,当在 titles 表上更改记录时,发送邮件通知 MaryM。
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE, DELETE
AS
EXEC master..xp_sendmail 'MaryM',
'Don''t forget to print a report for the distributors.'
b.基础-删除触发器
用查询分析器删除
在查询分析器中使用 drop trigger 触发器名称 来删除触发器。
也可以同时删除多个触发器:drop trigger 触发器名称,触发器名称...
注意:触发器名称是不加引号的。在删除触发器之前可以先看一下触发器是否存在:
if Exists(select name from sysobjects where name=触发器名称 and xtype='TR')
用企业管理器删除
在企业管理器中,在表上点右键->“所有任务”->“管理触发器”,选中所要删除的触发器,然后点击“删除”。
c.基础-重命名触发器 ......
热心网友
时间:2022-04-08 12:39
use database name
Alter Table t Disable Trigger ALL (关闭触发器)
insert into t
select * From t2 (各类操作语句)
/* delete t where...... */
/* update t set... where...*/
Alter Table t Enable Trigger ALL (打开触发器)
以上是在插入、更改、删除数据之前把针对表T的触发器关闭,操作表T的时候就不会再受触发器的干扰了,等这些操作完成后再把触发器打开。但是关闭触发器之前,得考虑周全,确定后面的操作不会对数据产生影响.
因为触发器能维持表之间的数据完整性和一致性,它的作用很重要.