Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
适用于:✅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(以事务性方式)。
注意
仅当在具体化视图查询中直接引用源表时,此命令才起作用。 如果源表是从视图查询所调用的存储函数引用的,则此命令会失败,因为此命令无法更新存储的函数。