为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server存储过程(procedure)应用

标签:
SQL Server

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

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

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

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

代码

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

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消