继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SQL Server存储过程(procedure)应用

关注TA
已关注
手记
粉丝
获赞

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

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

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

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

代码

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

 

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP