文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
Oracle频道
 资讯动态   安装配置   体系架构   PLSQL   备份恢复   性能调优   开发技术   考试认证   产品介绍   入门基础   经验交流
您现在的位置: IT文谷 >> 数据库频道 >> Oracle >> 入门基础 >> 文章正文
用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志
用触发器生成数据库表的数据操作日志
用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志
用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志
  作为一名数据库管理员,你尽力以各部门熟知的不同格式,向各部门提供它们所需要的数据。你通常将MS Excel格式的数据递交到会计部门,或将数据以HTML报表的形式呈现给普通用户。你们的系统安全管理员们则习惯于用文本阅读器或者事件查看器来查看日志。本文将介绍如何使用触发器,把DML(数据操作语言)对数据库中的特定数据表的改动记录下来。注:下列例子为Insert型触发器,不过改成Delete/Update型的触发器也很容易。

  操作步骤首先让我们在Northwind数据库内创建一个简单表。

create table tablefortrigger
(
 track int identity(1,1) primary key,
 Lastname varchar(25),
 Firstname varchar(25)
)
  创建好这个数据表后,添加一个标准message到master数据库的sysmessages数据表中。注意,我所添加的是一个参变量,用以接受一个字符值,它将被输出显示给管理员们。通过设置@_with_log参数为true,我们包管相关结果被发送到事件日志。

sp_addmessage 50005, 10, '%s', @with_log = true
  现在我们创建这条用有意义的信息填充的消息。下面的信息将填充这条消息,并且记录到文件中:

  ·操作的类型(插入)。

  ·受到影响的数据表。

  ·改动的日期与时间。

  被该语句插入的全部字段。 下面的这个触发器用预定义值(1~3个字符)创建一个字符串,该预定义值位于inserted数据表中。(这个inserted数据表驻留在内存中,它容纳被插入到触发器所在数据表的记录行)。触发器连接这些值并放到一个@msg变量。然后这个变量被传送到raiserror函数,该函数将它写到事件日志中。

Create trigger TestTrigger on
tablefortrigger
for insert
as
--声明储存消息的变量
Declare @Msg varchar(8000)
--将"操作/表名/日期时间/插入字段"赋与消息
set @Msg = 'Inserted | tablefortrigger | ' + convert(varchar(20), getdate()) + ' | '
+(select convert(varchar(5), track)
+ ', ' + lastname + ', ' + firstname
from inserted)
--产生错误发送给事件查看器。
raiserror( 50005, 10, 1, @Msg)
  运行以下语句对触发器进行测试,然后查看事件日志:

Insert into tablefortrigger(lastname, firstname)
Values('Doe', 'John')
  如果你打开事件日志,你应该看到以下消息:


(图1)


 

[1] [2] 下一页  

[1] [2] 下一页

用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志
  • 上一篇文章:

  • 下一篇文章:
  • 进入论坛讨论

    相关文章
    Oracle函数列表速查
    _disable_logging对于性能的影响
    针对Oracle数据库的优化器详细介绍
    索引与Null值对于Hints及执行计划的影响
    了解 Oracle ADF:入门示例
    DataGuard数据库服务器硬盘故障处理
    用sql比较两个数据库是否一致
    查询Oracle各组件的版本信息
    Oracle入门基础:绑定变量测试
    Oracle的db_name和instance_name
    一个容易忽视的Oracle数据安全问题
    Oracle时间信息特性
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 本站原创文章,转载时请注明出自文谷及作者姓名
    ③在本网BBS上发表言论者,文责自负。
    ④如您因版权等问题需要与本网联络,请在30日内联系 。
    用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志
    用触发器生成数据库表的数据操作日志用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志2006-12-8 19:33:13用触发器生成数据库表的数据操作日志

    全站热点
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷论坛
    Tel: 0577-65690019      E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2008 wengu.com 文谷 All Rights Reserved
    浙ICP备05000327号