.undo drop table 命令
适用于:✅Azure 数据资源管理器
.undo
drop
table
命令将删除表操作还原为特定的数据库版本。 数据库版本必须是删除表之前的版本。
权限
你必须至少具有数据库管理员权限才能运行此命令。
语法
.undo
drop
table
TableName [as
NewTableName] version=
Version
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
TableName | string |
✔️ | 要还原的表的名称。 |
NewTableName | string |
表的新表名。 | |
版本 | string |
删除表之前的数据库版本。 格式为 MajorVersion.MinorVersion。 若要查找版本,请参阅查找所需的数据库版本。 |
注意
必须在已从中删除表的数据库的上下文中执行该命令。
查找所需的数据库版本
使用 .show
journal
命令查找执行删除操作之前的数据库版本。 例如:
.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 命令执行到清除执行之前的版本。
- 仅当尚未达到数据库所在盘区容器的硬删除期时,才可以恢复盘区。
- 如果已多次创建并删除同名表,则只能撤消最近的删除操作。