技术开发 频道

自动记录数据库存储过程的更新和改变,并产生日志


【IT168技术文档】

  其实原理很简单,就是一个循环比较的方式,所以也不需要大费周章的去介绍了,那么下面就把实现相关的代码和流程贴出来。

  建立数据表

  在数据库建立三张表,sps_old, sps_new, sps_log。

  Sps_old:记录前一次系统中所有存储过程代码,以备比较

  Sps_new:当前所有存储过程的代码,与sps_log_old中的数据比较

  Sps_log:记录在两个时间点范围内变化的存储过程名字和变化时间

  表结构:
/****** Sps_log ******/ CREATE TABLE [dbo].[sps_log]( [sp_id] [int] NULL, [change_date] [datetime] NULL, [action_type] [char](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [sp_name] [varchar](150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] /****** Sps_new ******/---------------------------------------------------------------- CREATE TABLE [dbo].[sps_new]( [sp_id] [int] NULL, [colid] [smallint] NULL, [sp_name] [varchar](150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [sp_content] [varchar](4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [record_date] [datetime] NULL ) ON [PRIMARY] /******Sps_old******/----------------------------------------------------------------------------------- CREATE TABLE [dbo].[sps_old]( [sp_id] [int] NULL, [colid] [smallint] NULL, [sp_name] [varchar](150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [sp_content] [varchar](4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [record_date] [datetime] NULL ) ON [PRIMARY]
0
相关文章