65.9K
CodeProject 正在变化。 阅读更多。
Home

CodeSmith 生成的审计日志触发器

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.56/5 (3投票s)

2005年4月8日

1分钟阅读

viewsIcon

62089

downloadIcon

887

CodeSmith 模板,用于在 SQL 表上创建审计日志触发器。

引言

我认为我无需赘述 CodeSmith 的优点。 如果你还没有尝试过,请访问该链接体验一下。

背景

我需要记录对 SQL Server 表所做的更改,但由于我已经编写了应用程序,所以我需要一个快速且简单的解决方案,而无需对我的应用程序进行全新的单元和系统测试。 我知道 CodeSmith 有一些模板可以生成 SQL 脚本,并允许开发人员创建他们自己的脚本,而无需编写数百行代码。 结果就是 AuditTriggers CodeSmith 模板。

使用代码

安装 CodeSmith 后,你可以将脚本运行在你需要审计日志的 SQL Server 数据库表上。 它将生成一个 SQL 脚本,你可以安装到数据库中,或者修改后安装。

如果你查看生成的脚本中的注释,你将看到 Create Table 脚本。

-- Audit Table looks like this
-- CREATE TABLE [dbo].[<%= AuditTableName %>] (
--    [ChangeLogID] [int] IDENTITY (1, 1)  ,
--    [OperationType] [varchar] (10) NOT NULL ,
--    [ChangeTimestamp] [datetime] NOT NULL ,
--    [MadeBy] [varchar] (6)  NOT NULL ,
--    [TableChanged] [varchar] (50)  NOT NULL 
-- ) ON [PRIMARY]
-- Detail Table looks like this
-- CREATE TABLE [dbo].[<%= AuditFieldTableName %>] (
--    [FieldName] [varchar] (50) NOT NULL ,
--    [ChangeLogID] [int] NOT NULL ,
--    [BeforeValue] [sql_variant]  NOT NULL ,
--    [AfterValue] [sql_variant] NOT NULL 
-- ) ON [PRIMARY]

上面的脚本是日志表,所有审计日志都将插入到其中。 注意:AuditTrigger 脚本不会为 BLOB 数据类型生成审计日志。

关注点

对于任何类型的代码,CodeSmith 都是一个快速且简单的解决方案,堪称一流。

© . All rights reserved.