
了解 MS SQL 表及其命令
我们都知道MS SQL Server使用表来管理其关系数据库,包括所有记录。许多组织和公司使用 SQL(结构查询语言)来满足其自动化事务需求。
企业和电子商务网站使用 SQL Server 数据库表来存储首选自动化记录,即员工 ID、员工姓名、地址、电话号码、电子邮件 ID 等。SQL 表架构可能相应不同。
SQL管理员主要针对SQL表执行上述命令来对其进行相应的管理。
- 删除:用于删除一条记录。
- 降低:用于删除整个表,包括所有可用记录。
- 插入:用于在表中插入一条记录。
- 更新:用于修改SQL表记录。
- 创造:用于在 SQL 数据库中创建新的 SQL 表或对象。
- 授予:用于分配特权权限。
- 撤销:取回分配的特权权限。
#1) 通过SSMS从SQL Server表中恢复已删除的数据
只需继续执行以下步骤即可在 SQL Server 2022、2019、2017、2016、2014、2012、2008 R2、2005 和 2000 中恢复已删除的表。此方法专门供用户学习如何在 SQL Server Management Studio 应用程序中恢复表。
- 开始SQL Server管理工作室(SSMS) 在您的计算机上。
- 此后,右键单击数据库文件夹并选择恢复数据库
- 检查收音机与您的计算机关联的按钮,然后单击浏览图标(……)。
- 之后,选择备份媒体类型为文件并按添加
- 选择备份文件从数据库恢复已删除的表并点击好的。
- 此后,您的删除的SQL表数据恢复现在看到完成消息。
- 最后,按好的按钮成功从 SQL Server 表中恢复已删除的数据。
#2) 使用 LSN 恢复 SQL Server 中已删除的表
注意:LSN(日志序列号)技术不允许从 SQL Server 中的表中恢复已删除的数据。如果事务日志备份损坏或丢失。这是执行此技术所必需的,因为每个 SQL 日志记录都可以通过 LSN 来标识。
第一阶段:创建 SQL 数据库
执行以下命令创建名为“RecoverDeletedTables”的 SQL 数据库,表名为“Employees”。
USE [master];
GO
CREATE DATABASE RecoverDeletedTables;
GO
USE RecoverDeletedTables;
GO
CREATE TABLE [Employees] ()
[Sr.No] INT IDENTITY,
[Date] DATETIME DEFAULT GETDATE (),
[City] CHAR (25) DEFAULT ‘City1’);
第 2 阶段:在 SQL 表中插入数据
使用第 1 阶段,我们成功创建了包含 3 个不同列的表的 SQL 数据库。现在看插入过程。
USE RecoverDeletedTables;
GO
INSERT INTO Employees DEFAULT VALUES;
GO 100
第三阶段:删除SQL表中的一些行
USE RecoverDeletedTables
Go
DELETE Employees
WHERE [Sr.No]
GO
Select * from Employee
第 4 阶段:了解已删除的表行
现在,是时候通过搜索事务日志数据来获取有关已删除 SQL 行的信息了。
USE RecoverDeletedTables
GO
SELECT
[Current LSN],
[Transaction ID],
Operation,
Context,
AllocUnitName
FROM
fn_dblog(NULL, NULL)
WHERE
Operation = ‘LOP_DELETE_ROWS’
使用上述命令后,您可以看到已删除的SQL表行的事务ID。这里,我们需要查询Rows的删除时间。
5阶段:获取LOP_BEGIN_XACT日志记录的LSN,轻松学习如何恢复SQL Server中已删除的表
现在,必须使用事务 ID 来获取提取行删除时间。
USE RecoverDeletedTables
GO
SELECT
[Current LSN],
Operation,
[Transaction ID],
[Begin Time],
[Transaction Name],
[Transaction SID]
FROM
fn_dblog(NULL, NULL)
WHERE
[Transaction ID] = ‘0000:0000030e’
AND
[Operation] = ‘LOP_BEGIN_XACT’
之后可以看到当前LSN、操作、事务ID、事务名称等信息。
6 阶段:恢复 SQL Server 中已删除的表
此后,您需要通过在 LSN 前添加“0x”来将 LSN 值从十六进制格式更改为十进制格式。这有助于从数据库恢复已删除的 SQL 表。
–Restoring Full backup with norecovery.
RESTORE DATABASE RecoverDeletedTables_COPY
FROM 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
–Restore Log backup with STOPBEFOREMARK option to recover exact LSN.
RESTORE LOG RecoverDeletedTables_COPY
FROM
DISK = N’C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables_tlogbackup.trn’
ITH
STOPBEFOREMARK = ‘lsn:0x00000015:0000002a:0001’
建议阅读:什么是数据库恢复挂起 SQL Server 以及如何修复它?
现在,在 SQL Server 中恢复已删除表的过程已成功完成。如果您想查看恢复的已删除的 SQL 表记录,请运行下面提到的命令。
USE RecoverDeletedTables_COPY
GO
SELECT * from Employee
注意力:在上述代码中,将位置“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 中恢复已删除表最常用的 3 种最佳方法。但是,如果您具有 SQL Server 管理员级别的知识,建议您采用手动步骤来恢复 SQL Server 中已删除的表。如果万一您是非技术用户,则必须使用推荐的工具包来 SQL 撤消删除或立即解决您的查询。
