ApexSQL Log查看sqlserver 某张表的更新记录

ApexSQL Log 是一款用于处理数据库操作失误导致的数据丢失、数据改变等问题的工具,它可以根据数据库日志文件来找回丢失、改变的数据(但如果日志文件中不存在记录,可能就无法使用该工具找回)。

以下是使用 ApexSQL Log 查看 SQL Server 某张表更新记录的一般步骤:

  1. 下载并安装 ApexSQL Log 工具。
  2. 打开 ApexSQL Log 工具,点击【新增】开始恢复(这里的“恢复”属于个人称呼,非专业名词)。
  3. 在出现的界面中设置要连接的数据库:
    • Server(服务器):可选择 local,表示本地;也可以选择 recentservers(最近的服务器)或 localservers(本地服务器)。
    • Authentication(验证):选择连接方式,如 windows authentication(使用本机识别登录) 或 sql server authentication(使用 SQL Server 用户登录)。如果选择后者,则需要在下方填写账号密码(建议不要使用 sa 用户)。
    • User 和 Password:在选择 sql server authentication 登录方式时输入用户名和密码。
    • Database(数据库):选择需要进行恢复的数据库。
    • Recent Sessions:这里会记录近期的连接,以供查看。
  4. 选择好数据库后,设置查询数据的条件:
    • Time Range(时间范围):选择出现失误的时间范围,以获取该时间段的日志信息用于恢复。可以选择 last(数据源中的最后几个小时的数据)、first(数据源中几个小时前的数据)、whole transaction log(所有的日志信息)或 custom(自定义的时间区间)。
    • Operations(操作):这里选择出现问题的操作类型。例如,如果是误更新了某些数据,就勾选 data operations 里面的 update row。
    • Table(表):选择要恢复的表,即操作失误导致出现问题的表。
    • Advanced Options(高级选项):这里有较多设置项,如处理方式、用户、字段值、标识符、类别等。其中,在 transactions(处理)下可选择特定的事务;在 users(用户)下可选择出现问题时使用的用户账号,默认是勾选所有。还可以通过 field value 筛选数据的字段值等。
  5. 条件选择好之后,就可以开始分析数据。一般选择“在窗格中打开结果”,根据需要也可以选择“输出结果到文件”或“创建路径文件”。
  6. 分析完毕后,右边会显示执行的错误操作,点中其中一行就可以在下边的 operation detail 中看到各个字段的值。此时需要检查要修改的数据和目前所查出来的数据是否大致一致。
  7. 确认数据后,可以生成恢复用的语句。需注意以下几点:
    • 恢复语句生成后可直接执行,无需修改,这里生成的语句是一条数据对应一条语句。
    • 如果需要恢复的数据过大,产生的 SQL 文件也会较大,超过 3MB 可能无法预览,会直接生成文件。
    • 生成 SQL 文件时,要考虑电脑内存是否足够支持运行,不足的话会有错误提示。
    • 记住如果要输出所有的记录,需要勾选所有,这可不是按照搜索出来的所有进行输出。
  8. 选择 SQL 文件保存的位置。
  9. 找到保存的文件,用 SQL 管理工具打开并执行语句即可。

请注意,在实际操作中,根据具体情况可能需要调整某些步骤或设置。另外,确保对数据库的操作具有适当的权限,并在操作前仔细确认所选的条件和设置,以避免意外的数据更改或丢失。同时,由于该工具可能存在版本更新或变化,上述步骤可能需要根据你使用的具体版本进行适当调整。

如果你使用的是试用版,可能会有一些限制,例如只能恢复部分数据。在这种情况下,你可以考虑寻找该工具的正式版或破解补丁,但使用破解补丁可能涉及版权问题,并且存在一定的安全风险,请谨慎操作。或者,也可以参考其他合法的方式来查看 SQL Server 中表的更新记录,例如通过 SQL Server 提供的内置函数 fn_dblog 来查询事务日志,示例代码如下:

sql

use adventureworks; 
go
select 
    (current_lsn), 
    (transaction_id), 
    operation, 
    context, 
    alloc_unit_name, 
    (page_id), 
    (slot_id), 
    (begin_time), 
    (end_time)
from 
    fn_dblog(null, null)
where 
    operation = 'lop_modify_row' 
    and alloc_unit_name = 'dbo.yourtablename'; 

在上述代码中,将adventureworks替换为你的数据库名,将yourtablename替换为要查看的表名。该查询会返回指定表的更新操作记录,包括日志序列号(current_lsn)、事务 ID(transaction_id)、操作类型(operation)、上下文(context)等信息。通过分析这些信息,可以了解表的更新情况。但请注意,这种方式需要对数据库的事务日志有一定的了解和权限。此外,开启事务日志记录可能会对数据库性能产生一定影响,并且事务日志的大小也会随着时间增长,需要定期进行管理和备份。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值