Partager via


commande .rename table

Modifie le nom d’une table existante.

La .rename tables commande modifie le nom d’un certain nombre de tables dans la base de données en tant que transaction unique.

Autorisations

Vous devez disposer d’au moins des autorisations table Administration pour exécuter cette commande.

Syntax

.renametableOldNametoNewname

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

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
OldName string ✔️ Nom d’une table existante. Une erreur est générée et l’ensemble de la commande échoue si OldName ne nomme pas une table existante, sauf si ifexists est spécifié.
Newname string ✔️ Nouveau nom de la table qui s’appelait auparavant OldName.
ifexists string Si elle est spécifiée, la commande gère le scénario où la table n’existe pas. Au lieu d’échouer, elle se poursuit sans tenter de renommer la table qui n’existe pas.

Remarques

Cette commande fonctionne sur les tables de la base de données dans l’étendue uniquement. Les noms de table ne peuvent pas être qualifiés avec des noms de cluster ou de base de données.

Cette commande ne crée pas de tables et ne supprime pas les tables existantes. La transformation décrite par la commande doit être telle que le nombre de tables dans la base de données ne change pas.

La commande prend en charge l’échange de noms de tables, ou des permutations plus complexes, tant qu’elles respectent les règles ci-dessus. Par exemple, ingérer des données dans plusieurs tables intermédiaires, puis les échanger avec des tables existantes dans une seule transaction.

Exemples

Imaginez une base de données avec les tables suivantes : A, B, Cet A_TEMP. La commande suivante permute A et A_TEMP (de sorte que la A_TEMP table soit maintenant appelée A, et l’inverse), renommez BNEWBen et conservez C l’objet tel quelle.

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

La séquence de commandes suivante :

  1. Crée une table temporaire
  2. Remplace une table existante ou inexistante par la nouvelle table
// 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

Renommer la table source d’une vue matérialisée

Si la table en cours de renommage est la table source d’une vue matérialisée, vous pouvez spécifier la propriété suivante dans le cadre de la .rename commande :

.renametableOldNametoNewnamewith (updateMaterializedViews=true)

La table sera renommée et toutes les vues matérialisées faisant référence à OldName seront mises à jour pour pointer vers NewName, de manière transactionnelle.

Notes

La commande fonctionne uniquement si la table source est référencée directement dans la requête de vue matérialisée. Si la table source est référencée à partir d’une fonction stockée appelée par la requête view, la commande échoue, car la commande ne peut pas mettre à jour la fonction stockée.