SQLServer数据库怎么查看表的修改记录?

飞舞的锄头 2014-10-11 09:46:58
今天突然发现数据库中的表(sales表) 的数据少了很多,明显是被人删掉了,我于是用sa用户进去想查看是谁 什么时候删的数据。 该怎么操作?
...全文
15483 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
freecodex 2014-10-11
  • 打赏
  • 举报
回复
可以尝试如下建议: 1、可以使用默认的Log工具或者第三方的(比如:LiteSpeed)的工具。 2、做Trace机制,下次出现问题可以溯源。 3、一个简单的办法:
--Step #1:
USE DBName
GO
SELECT 
    [Transaction ID],
    Operation,
    Context,
    AllocUnitName
    
FROM 
    fn_dblog(NULL, NULL) 
WHERE 
   Operation = 'LOP_DELETE_ROWS' and 
   AllocUnitName= 'dbo.Test.PK__Test__5F573DD6' 
   -- 这里 'dbo.Test.PK__Test__5F573DD6'指表名的PK_Name
   -- 可以使用 SP_Pkeys SourceTableName 查到
  

--Step #2:
SELECT
    Operation,
    [Transaction ID],
    [Begin Time],
    [Transaction Name],
    [Transaction SID]
FROM
    fn_dblog(NULL, NULL)
WHERE
    [Transaction ID] ='0000:0005afba'   -- 这里 '0000:0005afba' 指Step #1中的Transaction ID
AND
    [Operation] = 'LOP_BEGIN_XACT'
    
--Step #3:
USE MASTER
GO   
SELECT SUSER_SNAME(0x01) 'UserID' --这里'0000:0005afba' 值Step #2中的Transaction SID

walkeeper 2014-10-11
  • 打赏
  • 举报
回复
围观求答案,我啊碰上过这样的事,虽然是测试环境也搞的人火大无比……
reenjie 2014-10-11
  • 打赏
  • 举报
回复
引用 2 楼 bailin710258 的回复:
[quote=引用 1 楼 reenjie 的回复:] Log Explorer
知道这个软件...种种原因不能装, 问下有没有简单的查询办法?只想查出是谁 什么时候 删除的那些数据[/quote] 对数据库历史操作,都保存日志文件中,要通过Log Explorer来查看。 想不出还有其他的方法了。
飞舞的锄头 2014-10-11
  • 打赏
  • 举报
回复
引用 1 楼 reenjie 的回复:
Log Explorer
知道这个软件...种种原因不能装, 问下有没有简单的查询办法?只想查出是谁 什么时候 删除的那些数据
reenjie 2014-10-11
  • 打赏
  • 举报
回复
Log Explorer

34,576

社区成员

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

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