天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、数据取证、数据迁移、网络安全、数据销毁等解决方案,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。
天津鸿萌科贸发展有限公司是国际主流数据恢复、数据备份及数字取证产品(UFS、Stellar、ReclaiMe、R-Studio、GetData、SysTools、Passware、Passmark、Elcomsoft、Exterro FTK、Veritas/Arctera、SyncbackPro 等)授权代理商。
概述: 本文将介绍在 SQL Server 数据库中恢复已删除表的 3 种主要方法。有时,Microsoft SQL Server 用户可能会对相关表执行 DELETE 或 DROP 命令。他们意外地删除了 SQL 表或表中的事务记录。但企业用户绝对不会希望 SQL 服务器宕机,因为这会影响他们的业务。
目录
- 了解 MS SQL 表及其命令
- 方法 1:通过 SSMS 恢复 SQL Server 表中已删除的数据
- 方法 2:使用 LSN 还原 SQL Server 中已删除的表
- 方法 3:通过自动化工具,在无备份的情况下恢复 SQL Server 中已删除的表
了解 MS SQL 表及其命令
我们都知道,MS SQL Server 使用表来管理其关系型数据库及所有记录。许多组织和公司使用 SQL(结构化查询语言)来满足其自动化事务需求。
企业和电子商务网站使用 SQL Server 数据库表来存储所需的自动化记录,例如:员工 ID、员工姓名、地址、电话号码、电子邮件 ID 等。SQL 表的模式可能相应地会有所不同。
SQL 管理员主要针对 SQL 表执行以下命令来进行相应管理:
- DELETE: 删除一条记录。
- DROP: 删除整个表及其所有可用记录。
- INSERT: 在表中插入一条记录。
- UPDATE: 修改 SQL 表记录。
- CREATE: 在 SQL 数据库中创建一个新的 SQL 表或对象。
- GRANT: 分配权限。
- REVOKE: 收回已分配的权限。
方法 1:通过 SSMS 恢复 SQL Server 表中已删除的数据
只需按照以下步骤操作,即可在 SQL Server 2022、2019、2017、2016、2014、2012、2008 R2、2005 和 2000 中恢复已删除的表。此方法用于在 SQL Server Management Studio 应用程序中还原表。
- 启动您计算机中的 SQL Server Management Studio (SSMS)。
- 右键单击 "数据库" 文件夹,选择 "还原数据库"。
- 选中与您计算机关联的单选按钮,然后单击浏览图标 (...)。
- 将备份介质类型选择为 "文件",然后点击 "添加"。
- 选择一个备份文件以从数据库中还原已删除的表,然后点击 "确定"。
- 之后,已删除的 SQL 表数据将被还原,可以看到完成信息。
- 最后,点击 "确定" 按钮,成功地从 SQL Server 表中还原已删除的数据。
方法 2:使用 LSN 还原 SQL Server 中已删除的表
请注意:使用 LSN(日志序列号)技术恢复 SQL Server 中已删除的表,有一个重要前提——事务日志备份必须完好无损。 如果事务日志备份已损坏或丢失,那么 LSN 技术就无法生效,无法恢复数据。因为每个 SQL 日志记录都通过唯一的 LSN 进行标识,所以执行该技术时必须依赖日志备份中的 LSN 信息来定位和恢复数据。
阶段 1:创建 SQL 数据库
执行以下命令,创建名为 "RecoverDeletedTables" 的 SQL 数据库和名为 "Employees" 的表。

USE [master];GOCREATE DATABASE RecoverDeletedTables;GOUSE RecoverDeletedTables;GOCREATE TABLE [Employees] ( [Sr.No] INT IDENTITY, [Date] DATETIME DEFAULT GETDATE (), [City] CHAR (25) DEFAULT 'City1');阶段 2:向 SQL 表中插入数据
通过阶段 1,我们已成功创建了包含一个表(含 3 个不同列)的 SQL 数据库。现在来看插入过程。
USE RecoverDeletedTables;GOINSERT INTO Employees DEFAULT VALUES;GO 100阶段 3:删除 SQL 表中的部分行
USE RecoverDeletedTablesGoDELETE EmployeesWHERE [Sr.No] < 10GOSelect * from Employees阶段 4:了解已删除的表行
现在,通过搜索事务日志数据来获取有关已删除 SQL 行的信息。
USE RecoverDeletedTablesGOSELECT [Current LSN], [Transaction ID], Operation, Context, AllocUnitNameFROM fn_dblog(NULL, NULL)WHERE Operation = 'LOP_DELETE_ROWS'使用上述命令后,可以看到已删除 SQL 表行的事务 ID。接下来,需要查找行的删除时间。
阶段 5:获取 LOP_BEGIN_XACT 日志记录的 LSN,以便于学习如何在 SQL Server 中恢复已删除的表
接下来,需要使用事务 ID 来提取行的删除时间。
USE RecoverDeletedTablesGOSELECT [Current LSN], Operation, [Transaction ID], [Begin Time], [Transaction Name], [Transaction SID]FROM fn_dblog(NULL, NULL)WHERE [Transaction ID] = '0000:0000030e' -- 请替换为您在阶段4找到的实际事务ID AND [Operation] = 'LOP_BEGIN_XACT'之后,您将看到关于当前 LSN、操作、事务 ID、事务名称等信息。
阶段 6:恢复 SQL Server 中已删除的表
接下来,需要通过添加 '0x' 前缀,将 LSN 值从十六进制格式转换为十进制格式。这有助于从数据库中还原已删除的 SQL 表。
-- 使用 NORECOVERY 还原完整备份RESTORE DATABASE RecoverDeletedTables_COPYFROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.bak'WITH MOVE 'RecoverDeletedTables' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.mdf', MOVE 'RecoverDeletedTables_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.ldf', REPLACE, NORECOVERY;GO-- 使用 STOPBEFOREMARK 选项还原日志备份,以恢复到确切的 LSNRESTORE LOG RecoverDeletedTables_COPYFROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables_tlogbackup.trn'WITH STOPBEFOREMARK = 'lsn:0x00000015:0000002a:0001' -- 请替换为您在阶段5找到的实际LSNGO到此为止,在 SQL Server 中还原已删除表的过程已成功完成。如果想查看被还原的已删除 SQL 表记录,请运行以下命令。
USE RecoverDeletedTables_COPYGOSELECT * from Employees注意: 在上述代码中,请将位置 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.bak' 替换为您备份文件实际保存的路径。也请将 MDF 和 LDF 文件的路径替换为您存储 MS SQL 数据库文件的实际路径。
方法 3:通过自动化工具,在无备份的情况下恢复 SQL Server 中已删除的表
鸿萌是众多国际权威数据恢复软件的授权代理商,为用户提供正版的数据恢复专业软件,并协助厂商提供技术支持。联系鸿萌,我们可以为您推荐适合的权威工具。
如果上述方法都无法恢复 SQL Server 中已删除的表,那么可以考虑使用鸿萌推荐的专业 SQL Server 数据库恢复软件。在无备份的情况下,可通过修复 SQL Server 主数据库来还原已删除的 SQL 表。该类工具支持 Microsoft SQL Server 2022、2019、2017、2016、2014、2012、2008 R2、2005 和 2000 版本。通过专业的数据库恢复工具,用户可以轻松地执行 SQL 撤消删除任务。
鸿萌代理的 SQL Server 数据库恢复软件功能优势
- 在 SQL Server 2022、2019、2017、2016、2014、2012、2008 R2、2005 和 2000 中还原已删除的表。
- 提供多种导出选择,例如:SQL Server 数据库、SQL Server 兼容脚本和标准 CSV 文件格式。
- 无需使用任何命令即可在 SQL Server 损坏的数据库中还原已删除的表。
- 在无备份文件的情况下从 SQL Server 表中恢复已删除的数据。
- 支持修复 SQL Server 数据库,以还原所有已删除的表和其他对象。
方法 4:鸿萌——专业的数据恢复服务
如果以上方法都不适合,您可能需要更快、更可靠的解决方案来修复或恢复已删除的 SQL Server 表。鸿萌在数据安全领域深耕二十余年,是专业的数据库恢复服务提供商,有丰富的数据库恢复成功案例经验和 ITSS 标准化服务体系保证。鸿萌数据恢复服务遍及各地,并提供应急响应服务,在数据灾难第一时间为客户提供应急指导与现场或远程紧急恢复服务。
总结
本文讨论了在 SQL Server 中恢复已删除表的几种最常用的最佳方法,从手动恢复到采用自动化工具,从自行恢复到寻求专业数据恢复服务的帮助。其中,自行手动恢复针对的是具备 SQL Server 管理员级别知识的人员;对于非技术用户,可以考虑使用鸿萌代理的数据库恢复工具来执行 SQL 撤消删除功能。为了更快速更安全的恢复数据库中已删除的表,推荐寻求专业数据恢复公司的帮助。鸿萌,您随时可以依靠的数据安全管家。