LogExplorer最高只支持sql Server2005, 而且使用也不方便。
最近发现一款工具非常不错, 那就是 ApexsqlLog, 据说是最高能支持 sql Server2012。
最新版本是 AplexsqlLog2016, 但试了下非常不好用, 连接都有问题, 还是先用一个稳定版本, 有了稳定的高版本再说。
下载地址:点击打开链接
使用步骤:
测试脚本:
/* 以下代码要执行两次: 1. 将数据库恢复模式改为“完整”; 2. 将数据库恢复模式改为“简单”; 每次完成后用 ApexsqlLog 查看是否有相关的记录, 以及是否能生成恢复的脚本。 */ USE test GO --创建测试表 IF OBJECT_ID('dbo.apexTest','U') IS NOT NULL BEGIN DROP TABLE dbo.apexTest END GO CREATE TABLE dbo.apexTest ( [id] BIGINT,[name] NVARCHAR(20),[account] VARCHAR(20),[birthday] DATETIME,[isDeleted] BIT,CONSTRAINT PK_apexTest PRIMARY KEY ( id ASC ) ) GO SET NOCOUNT ON --1. 插入数据 INSERT INTO dbo.apexTest(id,name,account,[birthday],isDeleted) VALUES(1,'王明','ming','2005-01-01',0) INSERT INTO dbo.apexTest(id,isDeleted) VALUES(2,'张华','hua','2006-02-02',isDeleted) VALUES(3,'李梦','meng','2007-03-03',1) INSERT INTO dbo.apexTest(id,isDeleted) VALUES(4,'李小','xiao','2008-04-04',1) --2. 更新数据 UPDATE dbo.apexTest SET [name]='张林' where id=2 --3. 删除数据 DELETE FROM dbo.apexTest WHERE isDeleted=1 /* ---------------------------- 下面是生成的恢复脚本 ---------------------------- -- 生成了两条插入脚本和一条更新脚本, 正好能对应 -- 第一次:完整 (恢复模式) -- DELETE (0000002F:00000094:0004) done at 2016-01-13 14:32:45.770 by dba in transaction 0000:000004DC (Committed) INSERT INTO [dbo].[apexTest] ([id],[name],[account],[isDeleted]) VALUES (4,N'李小' COLLATE Chinese_PRC_CI_AS,N'xiao' COLLATE Chinese_PRC_CI_AS,'20080404 00:00:00.000',1) -- DELETE (0000002F:00000094:0002) done at 2016-01-13 14:32:45.770 by dba in transaction 0000:000004DC (Committed) INSERT INTO [dbo].[apexTest] ([id],[isDeleted]) VALUES (3,N'李梦' COLLATE Chinese_PRC_CI_AS,N'meng' COLLATE Chinese_PRC_CI_AS,'20070303 00:00:00.000',1) GO -- UPDATE (0000002F:0000008F:0002) done at 2016-01-13 14:32:45.766 by dba in transaction 0000:000004DA (Committed) BEGIN TRANSACTION UPDATE [dbo].[apexTest] SET [name] = N'张华' COLLATE Chinese_PRC_CI_AS WHERE [id] = 2 IF @@ROWCOUNT <= 1 COMMIT TRANSACTION ELSE BEGIN ROLLBACK TRANSACTION; PRINT 'ERROR: STATEMENT AFFECTED MORE THAN ONE ROW. ALL THE CHANGES WERE ROLLED BACK.' END GO -- 第二次:简单(恢复模式) -- DELETE (0000002F:0000019A:0004) done at 2016-01-13 17:33:17.630 by dba in transaction 0000:000004F9 (Committed) INSERT INTO [dbo].[apexTest] ([id],1) -- DELETE (0000002F:0000019A:0002) done at 2016-01-13 17:33:17.630 by dba in transaction 0000:000004F9 (Committed) INSERT INTO [dbo].[apexTest] ([id],1) GO -- UPDATE (0000002F:00000199:0002) done at 2016-01-13 17:33:17.630 by dba in transaction 0000:000004F8 (Committed) BEGIN TRANSACTION UPDATE [dbo].[apexTest] SET [name] = N'张华' COLLATE Chinese_PRC_CI_AS WHERE [id] = 2 IF @@ROWCOUNT <= 1 COMMIT TRANSACTION ELSE BEGIN ROLLBACK TRANSACTION; PRINT 'ERROR: STATEMENT AFFECTED MORE THAN ONE ROW. ALL THE CHANGES WERE ROLLED BACK.' END GO */
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。