MS SQL Server 表数据更新时间查询

有时候需要检查数据库表最近一次被INSERT/UPDATE/DELETE的时间来了解各个表的数据写入情况。这里通过一个脚本给每个表加上触发器来记录表数据最后修改时间等信息。

执行以下T-SQL语句,将在当前数据库中创建一个日志表 [dbo].[generic_tbmodify_log] ,并自动从 sysobjects 系统表中获得数据库表清单,对除 [dbo].[generic_tbmodify_log] 本身以外的所有用户表创建触发器(触发器名形如 TG_FOR_GENETBMODIFY_[表名] )。这样当这些表发生 insert / update / delete 的时候,会自动更新 generic_tbmodify_log 表相应表名的表数据最后更新时间。

<script language=javascript src="/plug-ins/SyntaxHighlighter/shCore.js"></script>

 
  1. -- create table to hold updated message and date   
  2. -- tested in MS SQL Server 2000   
  3. if exists (   
  4.   select * from dbo.sysobjects   
  5.     where id = object_id(N'[dbo].[generic_tbmodify_log]')   
  6.       and OBJECTPROPERTY(id, N'IsUserTable') = 1   
  7. drop table [dbo].[generic_tbmodify_log]   
  8. GO   
  9. CREATE TABLE [dbo].[generic_tbmodify_log]   
  10.        ([PKID] [int] IDENTITY (1, 1) NOT NULL ,   
  11.        [tb_name] [varchar] (128)   
  12.          COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,   
  13.        [info] [varchar] (128)   
  14.          COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,   
  15.        [last_modified] [datetime] NULL ) ON [PRIMARY]   
  16. GO   
  17. ALTER TABLE [dbo].[generic_tbmodify_log] WITH NOCHECK   
  18.   ADD CONSTRAINT [PK_generic_tbmodify_log] PRIMARY KEY  
  19.     CLUSTERED ([PKID]) ON [PRIMARY]   
  20. GO   
  21. -- for each table in database generate audit trigger   
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值