不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
用触发器生成SQL Server2000数据表的操作日志
编辑:dnawo 日期:2009-03-11
有时,我们想知道登录到数据库的用户做了什么,于是,记录用户执行的SQL语句就非常有必要,这将是重要的参考依据。我们先建一张日志表(DBLoger)用于保存用户执行的SQL语句:
接着再建一个触发器,在用户对表进行增/删/改时触发,将执行的SQL语句记录到日志表中:
说明:由于dbcc inputbuffer的EventInfo最多只能保存255个字符,所以一旦执行的SQL过长,日志表中将无法看到完整的SQL语句!
参考:http://topic.csdn.net/t/20061130/11/5196444.html
复制内容到剪贴板
程序代码

Create TABLE DBLoger(
LoginName nvarchar(50),
HostName nvarchar(50),
EventInfo nvarchar(500),
Parameters int,
EventType nvarchar(100)
)
LoginName nvarchar(50),
HostName nvarchar(50),
EventInfo nvarchar(500),
Parameters int,
EventType nvarchar(100)
)
接着再建一个触发器,在用户对表进行增/删/改时触发,将执行的SQL语句记录到日志表中:
复制内容到剪贴板
程序代码

Create TRIGGER Loger ON student
FOR Insert, Update, Delete
AS
SET NOCOUNT ON
Create TABLE #T(EventType nvarchar(100),Parameters int,EventInfo nvarchar(500))
Insert #T exec('dbcc inputbuffer(' + @@spid + ')')
--记录到日志表
Insert INTO DBLoger(LoginName,HostName,EventInfo,Parameters,EventType) Select suser_sname(),host_name(),EventInfo,Parameters,EventType FROM #T
FOR Insert, Update, Delete
AS
SET NOCOUNT ON
Create TABLE #T(EventType nvarchar(100),Parameters int,EventInfo nvarchar(500))
Insert #T exec('dbcc inputbuffer(' + @@spid + ')')
--记录到日志表
Insert INTO DBLoger(LoginName,HostName,EventInfo,Parameters,EventType) Select suser_sname(),host_name(),EventInfo,Parameters,EventType FROM #T
说明:由于dbcc inputbuffer的EventInfo最多只能保存255个字符,所以一旦执行的SQL过长,日志表中将无法看到完整的SQL语句!
参考:http://topic.csdn.net/t/20061130/11/5196444.html
评论: 0 | 引用: 0 | 查看次数: 4257
发表评论
请登录后再发表评论!