.rename table コマンド
既存のテーブルの名前を変更します。
.rename tables
コマンドは、データベース内の複数のテーブルの名前を 1 つのトランザクションとして変更します。
アクセス許可
このコマンドを実行するには、少なくとも Table 管理者 アクセス許可が必要です。
構文
.rename
table
OldName to
NewName
.rename
tables
NewName =
OldName [ifexists
] [,
...]
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
OldName | string |
✔️ | 既存のテーブルの名前。 エラーが発生し、ifexists が指定されていない限り、OldName が既存のテーブルに名前を付けない場合、コマンド全体が失敗します。 |
NewName | string |
✔️ | 以前は OldName呼び出されたテーブルの新しい名前。 |
ifexists |
string |
指定した場合、コマンドはテーブルが存在しないシナリオを処理します。 失敗する代わりに、存在しないテーブルの名前を変更せずに続行されます。 |
注釈
このコマンドは、スコープ内のデータベースのテーブルに対してのみ動作します。
テーブル名は、クラスター名またはデータベース名で修飾することはできません。
たとえば、データベース名を使用してテーブル名を修飾することはできません。
このコマンドで、新しいテーブルが作成されたり、既存のテーブルが削除されたりすることはありません。 コマンドによって記述される変換は、データベース内のテーブルの数が変更されないようにする必要があります。
このコマンドでは、上記の規則に従っている限り、テーブル名のスワップまたはより複雑な置換がサポートされています。 たとえば、複数のステージング テーブルにデータを取り込み、その後、1 つのトランザクションで既存のテーブルとスワップします。
例
A
、B
、C
、A_TEMP
というテーブルを持つデータベースを考えます。
次のコマンドは、A
と A_TEMP
をスワップし (したがって A_TEMP
テーブルは A
と呼ばれるようになり、逆も同様)、B
の名前を NEWB
に変更して、C
をそのまま保持します。
.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 to
NewName with (updateMaterializedViews=true)
テーブルの名前が変更され、OldName を参照しているすべての具体化されたビューが、トランザクション方式で NewName を指すように更新されます。
Note
このコマンドは、ソース テーブルが具体化されたビュー クエリで直接参照されている場合にのみ機能します。 ビュー クエリによって呼び出されたストアド ファンクションからソース テーブルが参照される場合、コマンドは失敗します。これは、コマンドがストアド ファンクションを更新できないためです。