请问监控sql server数据库内记录的各种操作(添加、删除、更新等),一般都是通过什么方法实现的?有没有什么好用的第三方软件实现该功能?

解决方案 »

  1.   

    类似外资企业数据的变化.加个编号,更改任何一个字段后,编号加+1如编号1:原始数据.
    如编号2:更改了字段A
    如编号3:更改了字段B
    如编号4:更改了字段A,B....
      

  2.   

    楼上的这个方法不错,但存在局限性,不能很直观的反应全部数据表的数据变化(当数据库很大时,要监控整个数据库的记录改动的话,这个给对应字段采取编号的方法就很复杂了)我想找一个类似于一些监控注册表改动的软件功能的,用来监控sql server数据库的第三方软件,好用点的就行。
      

  3.   

    2000/2005?
    如果是05用DDL事件触发器可以把操作在一个表..
    用可以用:
    --把 DBCC INPUTBUFFER 生成报表...SELECT 
    execution_count [Number of Executions],
    total_worker_time/execution_count AS [Average CPU Time],
    Total_Elapsed_Time/execution_count as [Average Elapsed Time],
    (SELECT SUBSTRING(text,statement_start_offset/2,
    (CASE WHEN statement_end_offset = -1 then
    LEN(CONVERT(nvarchar(max), text)) * 2
    ELSE statement_end_offset
    end -statement_start_offset)/2)
    FROM 
    sys.dm_exec_sql_text(sql_handle)) AS query_text
    FROM 
    sys.dm_exec_query_stats
    ORDER BY [Average CPU Time] DESC
      

  4.   

    05的方法
    2000/2005?
    如果是05用DDL事件触发器可以把操作在一个表..
    用可以用:
    --把 DBCC INPUTBUFFER 生成报表...SELECT 
    execution_count [Number of Executions],
    total_worker_time/execution_count AS [Average CPU Time],
    Total_Elapsed_Time/execution_count as [Average Elapsed Time],
    (SELECT SUBSTRING(text,statement_start_offset/2,
    (CASE WHEN statement_end_offset = -1 then
    LEN(CONVERT(nvarchar(max), text)) * 2
    ELSE statement_end_offset
    end -statement_start_offset)/2)
    FROM 
    sys.dm_exec_sql_text(sql_handle)) AS query_text
    FROM 
    sys.dm_exec_query_stats
    ORDER BY [Average CPU Time] DESC2000可用Log_explorer--查看
    http://download.csdn.net/source/278909--下载地址
      

  5.   

    这是数据审核,可以到我的CSDN的空间里看下,我有一个动态数据审核的脚本,可以查到什么时候,什么程序做了什么操作,之前是什么数值,之后是什么数值等。
      

  6.   

    我用的是SQL2000,昨天试了一天,发现还是Log Explorer比较实用,能够实时查看数据库变动情况,谢谢大家
      

  7.   

    Log   Explorer确实是个不错的工具啊!