打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
给所有表加上一个更新时间戳的触发器

给所有表加上一个更新时间戳的触发器

时间:2011-5-24来源:yang 作者: peng点击: 79次

For each table, I need a trigger which will update  "ChangedDateTime" with current datetime if insert or update happened.:

------------------------------------------
USE [calvin zhao center]
GO

DECLARE @sql nvarchar(1000)
DECLARE @tblName nvarchar(50)
DECLARE @IdentityCol nvarchar(50)

DECLARE CursorUserTables CURSOR FOR
SELECT name FROM sys.tables
WHERE is_ms_shipped = 0
 
OPEN CursorUserTables
FETCH NEXT FROM CursorUserTables INTO @tblName
 
WHILE @@FETCH_STATUS=0
BEGIN
 SELECT @IdentityCol = COLUMN_NAME FROM INFORMATION_SCHEMA.columns
 WHERE TABLE_NAME=@tblName AND COLUMNPROPERTY(OBJECT_ID(@tblName),COLUMN_NAME,‘IsIdentity‘)=1
 
 if @IdentityCol is NULL
   RAISERROR (‘This table has no identity column.‘, 16, 1)
 else
 begin
   set @sql =‘IF OBJECT_ID (‘‘dbo.u‘ + @tblName + ‘‘‘,‘‘TR‘‘) IS NOT NULL
           DROP TRIGGER dbo.u‘+ @tblName + ‘;‘
   execute (@sql)
   set @sql = ‘CREATE TRIGGER dbo.u‘ +@tblName + ‘
         ON dbo.‘ + @tblName + ‘
         AFTER UPDATE
         AS
         BEGIN
           UPDATE ‘ + @tblName + ‘ SET ChangedDateTime = getdate()
           WHERE ‘ + @identityCol + ‘=(select ‘+@IdentityCol + ‘ from inserted)
         END;‘
       
   print @sql
   execute (@sql)
   
 end

 FETCH NEXT FROM CursorUserTables INTO @tblName  
END
 
 CLOSE CursorUserTables
 DEALLOCATE CursorUserTables  

----------------------------------------
注释:
1. 动态sql语句的回车符可以直接通过换行来得到
2.不能用GO
3. UPDATE SCHEDULES SET ChangedDateTime = getdate()
   WHERE ScheduleKe=inserted.ScheduleKe 通不过,提示错误:
The multi-part identifier "inserted.ScheduleKe" could not be bound.
  用 WHERE ScheduleKe=(select ScheduleKe from inserted)  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于SQL SERVER触发器技术的实现
SQL Server 面试题
SQL Server 变更数据捕获(CDC)监控表数据
如何在Sql Server中准确的获得标识值 _ 编程_数据库_C语言_电脑技术_程序设计...
SQL Server 2008中的代码安全(二):DDL触发器与登录触发器 - 邀月工作室 - 博客园
触发器在保证数据库完整性和一致性中的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服