.undo drop table 命令

.undodroptable 命令将删除表操作还原为特定的数据库版本。 数据库版本必须是删除表之前的版本。

权限

你必须至少具有数据库管理员权限才能运行此命令。

语法

.undodroptableTableName [asNewTableName] version=Version

详细了解语法约定

参数

客户 类型​​ 必需 说明
TableName string 要还原的表的名称。
NewTableName string 表的新表名。
版本 string 删除表之前的数据库版本。 格式为 MajorVersion.MinorVersion。 若要查找版本,请参阅查找所需的数据库版本

注意

必须在已从中删除表的数据库的上下文中执行该命令。

查找所需的数据库版本

使用 .showjournal 命令查找执行删除操作之前的数据库版本。 例如:

.show database TestDB journal
| where Event == "DROP-TABLE" and EntityName == "TestTable"
| project OriginalEntityVersion 
OriginalEntityVersion
v24.3

返回

此命令:

  • 返回原始表盘区列表
  • 为每个盘区指定盘区包含的记录数
  • 恢复操作成功或失败都返回
  • 如果相关,则返回失败原因。
ExtentId NumberOfRecords 状态 FailureReason
ef296c9e-d75d-44bc-985c-b93dd2519691 100 已恢复
370b30d7-cf2a-4997-986e-3d05f49c9689 1000 已恢复
861f18a5-6cde-4f1e-a003-a43506f9e8da 855 无法恢复盘区 盘区容器:找不到 4b47fd84-c7db-4cfb-9378-67c1de7bf154,此盘区已从存储中删除,无法恢复

示例

// Recover TestTable table to database version 24.3
.undo drop table TestTable version="v24.3"
// Recover TestTable table to database version 10.3 with new table name, NewTestTable (can be used if a table with the same name was already created since the drop)  
.undo drop table TestTable as NewTestTable version="v10.3"

限制

  • 如果对此数据库执行了 Purge 命令,则不能将 undo drop table 命令执行到清除执行之前的版本。
  • 仅当尚未达到数据库所在盘区容器的硬删除期时,才可以恢复盘区。
  • 如果已多次创建并删除同名表,则只能撤消最近的删除操作。