您现在的位置:主页 > 技术中心 > 数据库技术

如何制定自己的SQL Server 2000触发器(2)

来源:互联网 责任编辑:admin 发表时间:2013-07-01 21:17 点击:

用企业管理器查看:

在表上点右键->“所有任务”->“管理触发器”,选择所要查看的触发器。

如何查看当前数据库中有哪些触发器

在查询分析器中运行:

use 数据库名

go

select * from sysobjects where xtype='TR'

sysobjects

保存着数据库的对象,其中 xtype 为 TR 的记录即为触发器对象。

在 name 一列,我们可以看到触发器名称。

sp_helptrigger

存储过程 sp_helptrigger 用于查看触发器的属性。

sp_helptrigger 有两个参数:第一个参数为表名;第二个为触发器类型,为 char(6) 类型,可以是 INSERT、UPDATE、DELETE,如果省略则显示指定表中所有类型触发器的属性。

例:

use 数据库名

go

exec sp_helptrigger tbl

触发器更多语法

INSTEAD OF:

执行触发器语句,但不执行触发触发器的 SQL 语句,比如试图删除一条记录时,将执行触发器指定的语句,此时不再执行 delete 语句。例:

create trigger f

on tbl

instead of delete

as

insert into Logs...

IF UPDATE(列名):

检查是否更新了某一列,用于 insert 或 update,不能用于 delete。例:

create trigger f

on tbl

for update

as

if update(status) or update(title)

sql_statement --更新了 status 或 title 列

inserted、deleted:

这是两个虚拟表,inserted 保存的是 insert 或 update 之后所影响的记录形成的表,deleted 保存的是 delete 或 update 之前所影响的记录形成的表。例:

create trigger tbl_delete

on tbl

for delete

as

declare @title varchar(200)

select @title=title from deleted

insert into Logs(logContent)

values('删除了 title 为:' + title + '的记录')

说明:如果向 inserted 或 deleted 虚拟表中取字段类型为 text、image 的字段值时,所取得的值将会是 null。

触发器回滚

举例:

我们看到许多注册系统在注册后都不能更改用户名,但这多半是由应用程序决定的, 如果直接打开数据库表进行更改,

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

推荐热点

  • SQL注入攻击及其防范检测技术研究
  • Sql-Server应用程序的高级Sql注入
  • 学生信息管理系统数据库原理课程设计报告
  • 经验总结:登录和优化IBM DB2的执行速度
  • MySQL服务器的启动与停止
  • 浅谈数据库的接口技术
  • 学习数据库知识之 SQL 操作标记
  • 如何在SQL Server和MySql中创建临时表
  • 有关Sybase系统的数据同步与复制问题
?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
Copyright © 2004-2024 上海卓卓网络科技有限公司