.rename table 命令
適用於: ✅Microsoft網狀架構✅Azure 數據總管
變更現有數據表的名稱。
命令會將 .rename tables
資料庫中一些數據表的名稱變更為單一交易。
權限
您必須至少有 資料表管理員 許可權才能執行此命令。
語法
.rename
table
OldName NewName to
.rename
tables
NewName OldName =
[ifexists
] [,
...]
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
OldName | string |
✔️ | 現有數據表的名稱。 如果 OldName 未命名現有的數據表,除非ifexists 指定,否則會引發錯誤,而且整個命令會失敗。 |
NewName | string |
✔️ | 用來呼叫 OldName 之數據表的新名稱。 |
ifexists |
string |
如果指定,命令會處理數據表不存在的案例。 它不會失敗,而是會繼續,而不會嘗試重新命名不存在的數據表。 |
備註
此命令只會在範圍中的資料庫數據表上運作。
數據表名稱不能以叢集或資料庫名稱限定。
例如,數據表名稱不能限定資料庫名稱。
此命令不會建立新的資料表,也不會移除現有的數據表。 命令所描述的轉換必須使資料庫中的數據表數目不會變更。
只要符合上述規則,命令 就 支援交換數據表名稱或更複雜的排列。 例如,將數據擷取至多個臨時表,然後將這些數據與單一交易中的現有數據表交換。
範例
想像具有下列資料表資料庫: A
、 B
、 C
與 A_TEMP
。
下列命令會交換 和 (讓A_TEMP
資料表現在稱為 ,並以另一種方式重新命名B
A
為 NEWB
,並依現態保留C
。A_TEMP
A
.rename tables A=A_TEMP, NEWB=B, A_TEMP=A
下列命令序列:
- 建立新的臨時表
- 以新的數據表取代現有或不存在的數據表
// Drop the temporary table if it exists
.drop table TempTable ifexists
// Create a new table
.set TempTable <| ...
// Swap the two tables
.rename tables TempTable=Table ifexists, Table=TempTable
// Drop the temporary table (which used to be Table) if it exists
.drop table TempTable ifexists
重新命名具體化檢視的源數據表
如果重新命名的數據表是具體化檢視的源數據表,您可以將下列屬性指定為命令的.rename
一部分:
.rename
table
OldName NewName to
with (updateMaterializedViews=true)
數據表將會重新命名,而且參考 OldName 的所有具體化檢視都會更新為以交易方式指向 NewName。
注意
只有在具體化檢視查詢中直接參考源數據表時,命令才能運作。 如果源數據表是從檢視查詢叫用的預存函式參考,命令將會失敗,因為命令無法更新預存函式。