SQLServer: 用ApexSqlLog2014恢复SqlServer2005数据

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
*/

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...