ITPub博客

首页 > IT职业 > IT图书 > SQL Server存储过程(procedure)应用

SQL Server存储过程(procedure)应用

IT图书 作者:cjk 时间:2021-09-09 09:45:03 0 删除 编辑

用户反映,系统操作日志会使用数据库快速增大,情况可参考下图,

图片描述

问题分析,整个系统每个页面,都有写记录用户操作代码,修改或禁用这个代码,看来是不可能的。

在原有系统参数表添加一个选项,可以让管理员可选项,“是否启用操作日志”。

这样子,就可以更改操作记录的存储过程,

代码

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_OperationLog_Insert]
(
    @UsersId INT,    
    @Site NVARCHAR(1000),
    @Type NVARCHAR(30),
    @TransactionContent NVARCHAR(1000),
    @State BIT,
    @Info NVARCHAR(2000) 
)
AS    
--修改部分,添加下面两句    
DECLARE @IsEnableLog BIT 
SET @IsEnableLog = (SELECT [Enable] FROM [dbo].[sysParams] WHERE [ID] = 23 AND [ParamName] = '是否启用操作日志' )

    BEGIN TRANSACTION
    IF @IsEnableLog = 1    --判断是否启用    
    INSERT INTO [dbo].[OperationLog](UsersId,[OperationTime],[Site],[Type],[TransactionContent],[State],[Info]) VALUES (@UsersId,GETDATE(),@Site,@Type,@TransactionContent,@State,@Info)
        
    IF @@ERROR  0    
    BEGIN
        ROLLBACK TRANSACTION        
    END        
        COMMIT TRANSACTION

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4715/viewspace-2811794/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-29

  • 博文量
    181
  • 访问量
    1131