.rename table 命令
适用于:✅Azure 数据资源管理器
更改现有表的名称。
.rename tables
命令将数据库中多个表的名称作为单个事务进行更改。
权限
你必须至少具有表管理员权限才能运行此命令。
语法
.rename
table
OldName to
NewName
.rename
tables
NewName =
OldName [ifexists
] [,
...]
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
OldName | string |
✔️ | 某个现有表的名称。 如果 OldName 不是某个现有表的名称,则会引发错误,并且整个命令将失败,除非指定了 ifexists 。 |
NewName | string |
✔️ | 以前名为 OldName 的表的新名称。 |
ifexists |
string |
如果指定此项,则该命令将处理表不存在的情况。 它不会失败,而是会继续操作,且不尝试重命名不存在的表。 |
备注
此命令仅对范围内的数据库表起作用。
无法使用群集或数据库名称限定表名。
此命令不会创建新表,也不会删除现有表。 此命令描述的转换必须确保数据库中的表数量保持不变。
只要遵守上述规则,此命令就支持交换表名或更复杂的排列。 例如,将数据引入多个临时表,然后在单个事务中将它们与现有表交换。
示例
假设数据库中包含以下表: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(以事务性方式)。
注意
仅当在具体化视图查询中直接引用源表时,此命令才起作用。 如果源表是从视图查询所调用的存储函数引用的,则此命令会失败,因为此命令无法更新存储的函数。