Compartir a través de


Comando .rename table

Cambia el nombre de una tabla existente.

El .rename tables comando cambia el nombre de una serie de tablas de la base de datos como una única transacción.

Permisos

Debe tener al menos permisos de table Administración para ejecutar este comando.

Syntax

.renametableOldNametoNewname

.renametablesNewname=OldName [] [ifexists, ...]

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
OldName string ✔️ Nombre de una tabla existente. Se produce un error y se produce un error en todo el comando si OldName no asigna un nombre a una tabla existente, a menos que ifexists se especifique.
NewName string ✔️ Nuevo nombre de la tabla que solía llamarse OldName.
ifexists string Si se especifica, el comando controlará el escenario en el que la tabla no existe. En lugar de fallar, continuará sin intentar cambiar el nombre de la tabla que no existe.

Comentarios:

Este comando solo funciona en tablas de la base de datos en el ámbito. Los nombres de tabla no se pueden calificar con nombres de clúster o base de datos.

Este comando no crea nuevas tablas ni quita las tablas existentes. La transformación descrita por el comando debe ser de modo que el número de tablas de la base de datos no cambie.

El comando admite el intercambio de nombres de tabla o permutaciones más complejas, siempre y cuando cumplan las reglas anteriores. Por ejemplo, ingiera datos en varias tablas de almacenamiento provisional y, a continuación, intercambielos con tablas existentes en una sola transacción.

Ejemplos

Imagine una base de datos con las tablas siguientes: A, B, Cy A_TEMP. El comando siguiente intercambiará A y A_TEMP (para que ahora se llame Aa la A_TEMP tabla , y la otra manera), cambie el nombre B a NEWBy mantenga C tal cual.

.rename tables A=A_TEMP, NEWB=B, A_TEMP=A

La siguiente secuencia de comandos:

  1. Crea una nueva tabla temporal
  2. Reemplaza una tabla existente o no existente por la nueva tabla.
// 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

Cambiar el nombre de la tabla de origen de una vista materializada

Si se cambia el nombre de la tabla es la tabla de origen de una vista materializada, puede especificar la siguiente propiedad como parte del .rename comando:

.renametableOldNametoNewnamewith (updateMaterializedViews=true)

Se cambiará el nombre de la tabla y todas las vistas materializadas que hacen referencia a OldName se actualizarán para que apunten a NewName, de forma transaccional.

Nota

El comando solo funcionará si se hace referencia a la tabla de origen directamente en la consulta de vista materializada. Si se hace referencia a la tabla de origen desde una función almacenada invocada por la consulta de vista, se producirá un error en el comando, ya que el comando no puede actualizar la función almacenada.