RENOMMER (Transact-SQL)

S’applique à :Azure Synapse Analytics

Renomme une table créée par l’utilisateur dans Azure Synapse Analytics.

Cet article s’applique uniquement à Azure Synapse Analytics :

  • Pour renommer une base de données dans SQL Server, utilisez la procédure stockée sp_renamedb.
  • Pour renommer une base de données dans Azure SQL Database, utilisez l’instruction ALTER DATABASE (Azure SQL Database).
  • Le renommage de pools SQL dédiés autonomes (anciennement SQL DW) est pris en charge. La modification du nom d’un pool SQL dédié dans les espaces de travail Azure Synapse Analytics n’est pas prise en charge actuellement.
  • Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Syntaxe

-- Syntax for Azure Synapse Analytics

-- Rename a table.
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name
[;]

Arguments

RENOMMER OBJET [ ::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] table_namePOUR new_table_name

S’applique à : Azure Synapse Analytics

Modifiez le nom d’une table définie par l’utilisateur. Spécifiez la table à renommer avec un nom en une, deux ou trois parties. Spécifiez la nouvelle table new_table_name avec un nom en une partie.

Autorisations

Pour exécuter cette commande, vous avez besoin de cette autorisation :

  • Autorisation ALTER au niveau de la table

Limitations et restrictions

Impossible de renommer une table externe, des index ou des vues

Vous ne pouvez pas renommer une table externe, des index ou des vues. Au lieu de renommer une table externe, un index ou une vue, vous pouvez supprimer l’élément en question et le recréer avec un nouveau nom.

Impossible de renommer une table utilisée

Vous ne pouvez pas renommer une table ou une base de données en cours d’utilisation. Pour renommer une table, vous avez besoin d’un verrou exclusif au niveau de la table. Si la table est en cours d’utilisation, vous pouvez être amené à terminer les sessions qui utilisent la table. Pour terminer une session, vous pouvez utiliser la commande KILL. Utilisez KILL avec précaution, car lorsqu’une session se termine, le travail non validé est annulé. Les sessions dans Azure Synapse Analytics sont précédées du préfixe « SID ». Vous devez inclure le préfixe « SID » et le numéro de session lorsque vous appelez la commande KILL. Cet exemple présente une liste de sessions actives ou inactives, puis termine la session « SID1234 ».

Restrictions relatives au renommage de colonnes

Vous ne pouvez pas renommer une colonne qui est utilisée pour la distribution de la table. Vous ne pouvez pas non plus renommer les colonnes d’une table externe ou d’une table temporaire.

Les vues ne sont pas mises à jour

Quand vous renommez une base de données, toutes les vues qui utilisent l’ancien nom de la base de données deviennent non valides. Ce comportement vaut pour les vues internes et externes à la base de données. Par exemple, si la base de données Sales est renommée, une vue qui contient SELECT * FROM Sales.dbo.table1 devient non valide. Pour résoudre ce problème, évitez d’utiliser des noms en trois parties dans les vues ou mettez à jour les vues pour qu’elles référencent le nouveau nom de la base de données.

Quand une table est renommée, les vues ne sont pas mises à jour pour référencer le nouveau nom de la table. Chaque vue, interne ou externe à la base de données, qui référence l’ancien nom de la table devient non valide. Pour résoudre ce problème, mettez à jour chaque vue pour qu’elle référence le nouveau nom de la table.

Quand vous renommez une colonne, les vues ne sont pas mises à jour pour référencer le nouveau nom de la colonne. Les vues continuent d’afficher l’ancien nom de colonne jusqu’à ce qu’une instruction ALTER VIEW soit exécutée. Les vues peuvent devenir non valides dans certains cas, vous obligeant à les supprimer et à les recréer.

Verrouillage

Renommer une table nécessite un verrou partagé sur l’objet DATABASE , un verrou partagé sur l’objet SCHEMA et un verrou exclusif sur la table.

Exemples

R. Renommer une table

S’applique à : Azure Synapse Analytics

Dans cet exemple, la table Customer est renommée Customer1.

-- Rename the customer table
RENAME OBJECT Customer TO Customer1;

RENAME OBJECT mydb.dbo.Customer TO Customer1;

Quand vous renommez une table, tous les objets et les propriétés associés à la table sont mis à jour pour qu’ils référencent le nouveau nom de la table. Par exemple, les définitions, les index, les contraintes et les autorisations de la table sont mis à jour. Les vues ne sont pas mises à jour.

B. Déplacer une table vers un schéma différent

S’applique à : Azure Synapse Analytics

Si votre intention est de déplacer l’objet vers un autre schéma, utilisez ALTER SCHEMA. Par exemple, l’instruction suivante déplace l’élément table du schéma product vers le schéma dbo.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

C. Terminer les sessions avant de renommer une table

S’applique à : Azure Synapse Analytics

Vous ne pouvez pas renommer une table pendant qu’elle est en cours d’utilisation. Le renommage d’une table nécessite un verrou exclusif au niveau de la table. Si la table est en cours d’utilisation, vous serez peut-être amené à terminer la session qui utilise la table. Pour terminer une session, vous pouvez utiliser la commande KILL. Utilisez KILL avec précaution, car lorsqu’une session se termine, le travail non validé est annulé. Les sessions dans Azure Synapse Analytics sont précédées du préfixe « SID ». Vous devez inclure le préfixe « SID » et le numéro de session lorsque vous appelez la commande KILL. Cet exemple présente une liste de sessions actives ou inactives, puis termine la session « SID1234 ».

-- View a list of the current sessions
SELECT session_id, login_name, status
FROM sys.dm_pdw_exec_sessions
WHERE status='Active' OR status='Idle';

-- Terminate a session using the session_id.
KILL 'SID1234';