.undo drop table 命令

.undodroptable 命令會將 drop table 作業還原至特定的資料庫版本。 資料庫版本必須是數據表刪除之前的版本。

權限

您必須至少有資料庫 管理員許可權才能執行此命令。

Syntax

.undodroptableTableName [asNewTableName] version=版本

深入瞭解 語法慣例

參數

名稱 類型 必要 描述
TableName string ✔️ 要還原的數據表名稱。
NewTableName string 數據表的新數據表名稱。
版本 string 數據表刪除之前的資料庫版本。 格式為 MajorVersionMinorVersion。 若要尋找版本,請參閱 尋找必要的資料庫版本

注意

命令必須在卸除數據表的資料庫內容中執行。

尋找必要的資料庫版本

.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 命令時,將無法復原到比執行清除前更早的版本。
  • 只有在未到達範圍容器的實刪除期限前,才能復原範圍。
  • 如果已建立並卸除同名的數據表數次,則只能復原最近卸除的數據表。