在mssql中我想监视一个数据库的所有操作,用存储过程能实现吗?来着有分

FrankSparrow 2003-11-26 04:32:28
我现在想把一个数据库的所有数据更改操作都记录下来,输出到一个文件,最好是操作的所有sql语句。(例如数据库中表test插入一条记录,我就输出log文件:insert into test values.... )用存储过程能实现吗?大家都发表一下看法,给我个思路
...全文
47 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
btlxy 2003-11-27
  • 打赏
  • 举报
回复
用存贮过程可以实现,太麻烦了
不如建立触发器
FrankSparrow 2003-11-27
  • 打赏
  • 举报
回复
时间探测器连系统表也监视了。而且在sql程序中不能调用阿
youngby 2003-11-27
  • 打赏
  • 举报
回复
日志
hdslah 2003-11-27
  • 打赏
  • 举报
回复
建義用﹕SQL Profiler
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
方法2.
对每个表写触发器,记录每笔操作的发生.
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
方法1.
用SQL的事件探查器
开始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建
--设置跟踪的项目...
--然后数据库的调用情况就会显示出来
happydreamer 2003-11-27
  • 打赏
  • 举报
回复
对表字段更新的监视

CREATE TRIGGER tt ON dbo.table1
FOR INSERT, UPDATE
AS

if update(a表的一个字段)
insert into 日志表
select getdate(),user--得到时间和操作用户
from inserted a

MartinWang 2003-11-26
  • 打赏
  • 举报
回复
事件探查器可以满足所有的要求!!:)
tianyxy 2003-11-26
  • 打赏
  • 举报
回复
最好的选择:时间探查器
wsqsoft 2003-11-26
  • 打赏
  • 举报
回复
对,事件探查器,可存入文件,也可存入表中,如果访问操作比较多的话,比较占用系统资源!
gmlxf 2003-11-26
  • 打赏
  • 举报
回复
事件探查器
CrazyFor 2003-11-26
  • 打赏
  • 举报
回复
存储过程是不行的,其实你要的日志SQL已经帮你写进日志文件中了,有什么必要自己再做一个呢??
txlicenhe 2003-11-26
  • 打赏
  • 举报
回复
问题是: 这个存储过程什么时候调用呢?
txlicenhe 2003-11-26
  • 打赏
  • 举报
回复
有点难度。
思路:
用游标,取出所有的spid, 对每一个spid 用 dbcc inputbuffer(spid)来得到语句

34,615

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧