RENAME (Transact-SQL)

Aplica-se a:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Renomeia uma tabela criada pelo usuário no Azure Synapse Analytics. Renomeia uma tabela criada pelo usuário, uma coluna em uma tabela ou um banco de dados criado pelo usuário em PDW (Analytics Platform System).

Este artigo aplica-se somente ao Azure Synapse Analytics e o PDW (Sistema de Plataforma de Análise e Análise):

  • Para renomear um banco de dados em SQL Server, use o procedimento armazenado sp_renamedb.
  • Para renomear um banco de dados no Banco de Dados SQL do Azure, use a instrução ALTER DATABASE (Banco de Dados SQL do Azure).
  • Há suporte para a renomeação de pools de SQL dedicados autônomos (anteriormente conhecidos como SQL DW). No momento, não há suporte para renomear um pool de SQL dedicado em espaços de trabalho do Azure Synapse Analytics.
  • Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Sintaxe

-- Syntax for Azure Synapse Analytics

-- Rename a table.
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name
[;]
-- Syntax for Analytics Platform System (PDW) 

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

-- Rename a database
RENAME DATABASE [::] database_name TO new_database_name
[;]

-- Rename a column 
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name COLUMN column_name TO new_column_name [;]

Argumentos

RENAME OBJECT [::] [ [database_name. [ schema_name ]. ] | [ schema_name . ] ] table_name TO new_table_name

Aplica-se a: Azure Synapse Analytics, PDW (Analytics Platform System)

Altere o nome de uma tabela definida pelo usuário. Especifique a tabela a ser renomeada com um nome de uma, duas ou três partes. Especifique a nova tabela new_table_name como um nome de uma parte.

RENAME DATABASE [::] [ database_name TO new_database_name

Aplica-se a: PDW (Analytics Platform System)

Altere o nome de um banco de dados definido pelo usuário de database_name para new_database_name. Não é possível renomear um banco de dados para qualquer um dos seguintes nomes de banco de dados reservados do PDW (Analytics Platform System):

  • master
  • model
  • msdb
  • tempdb
  • pdwtempdb1
  • pdwtempdb2
  • DWConfiguration
  • DWDiagnostics
  • DWQueue

RENAME OBJECT [::] [ [database_name. [ schema_name ]. ] | [ schema_name . ] ]table_name COLUMN column_name TO new_column_name

Aplica-se a: PDW (Analytics Platform System)

Altere o nome de uma coluna em uma tabela.

Permissões

Para executar esse comando, é necessário ter esta permissão:

  • Permissão ALTER na tabela

Limitações e Restrições

Não é possível renomear uma tabela externa, índices ou exibições

Não é possível renomear uma tabela externa, índices ou exibições. Em vez de renomeá-la, você pode remover a tabela externa, o índice ou a exibição e, em seguida, recriá-la com o novo nome.

Não é possível renomear uma tabela em uso

Não é possível renomear uma tabela ou um banco de dados enquanto ele está em uso. A renomeação de uma tabela exige um bloqueio exclusivo na tabela. Se a tabela estiver em uso, você precisará encerrar as sessões que usam a tabela. Para terminar uma sessão, use o comando KILL. Use KILL com cuidado, pois quando uma sessão for terminada, qualquer trabalho não confirmado será revertido. As sessões no Azure Synapse Analytics são prefixadas por 'SID'. Inclua o ‘SID’ e o número da sessão ao invocar o comando KILL. Este exemplo exibe uma lista de sessões ativas ou ociosas e, em seguida, termina a sessão 'SID1234'.

Renomear restrições de coluna

Não é possível renomear uma coluna que é usada para a distribuição da tabela. Também não é possível renomear nenhuma coluna em uma tabela externa ou em uma tabela temporária.

As exibições não são atualizadas

Ao renomear um banco de dados, todas as exibições que usam o nome antigo do banco de dados se tornarão inválidas. Esse comportamento se aplica às exibições dentro e fora do banco de dados. Por exemplo, se o banco de dados Sales for renomeado, uma exibição que contém SELECT * FROM Sales.dbo.table1 se tornará inválida. Para resolver esse problema, evite usar nomes de três partes em exibições ou atualizar as exibições para elas referenciarem o novo nome de banco de dados.

Ao renomear uma tabela, as exibições não são atualizadas para referenciar o novo nome da tabela. Toda exibição, dentro ou fora do banco de dados, que referencia o nome da tabela antiga se tornará inválida. Para resolver esse problema, atualize cada exibição para ela referenciar o novo nome da tabela.

Ao renomear uma coluna, as exibições não são atualizadas para referenciar o novo nome da coluna. As exibições continuarão mostrando o antigo nome da coluna até que uma instrução ALTER VIEW seja executada. Em alguns casos, as exibições podem se tornar inválidas, precisando de uma instrução DROP e RECREATE.

Bloqueio

A renomeação de uma tabela usa um bloqueio compartilhado no objeto DATABASE, um bloqueio compartilhado no objeto SCHEMA e um bloqueio exclusivo na tabela.

Exemplos

a. Renomear um banco de dados

Aplica-se a: somente PDW (Analytics Platform System)

Esse exemplo renomeia o banco de dados definido pelo usuário AdWorks como AdWorks2.

-- Rename the user defined database AdWorks
RENAME DATABASE AdWorks to AdWorks2;

Ao renomear uma tabela, todas as propriedades e todos os objetos associados à tabela são atualizados para referenciar o novo nome da tabela. Por exemplo, definições de tabela, índices, restrições e permissões são atualizados. As exibições não são atualizadas.

B. Renomear uma tabela

Aplica-se a: Azure Synapse Analytics, PDW (Analytics Platform System)

Este exemplo renomeia a tabela Customer como Customer1.

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

RENAME OBJECT mydb.dbo.Customer TO Customer1;

Ao renomear uma tabela, todas as propriedades e todos os objetos associados à tabela são atualizados para referenciar o novo nome da tabela. Por exemplo, definições de tabela, índices, restrições e permissões são atualizados. As exibições não são atualizadas.

C. Mover uma tabela para outro esquema

Aplica-se a: Azure Synapse Analytics, PDW (Analytics Platform System)

Se sua intenção for mover o objeto para outro esquema, use ALTER SCHEMA. Por exemplo, a instrução a seguir move o item de tabela do esquema de produto ao esquema de dbo.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

D. Encerrar sessões antes de renomear uma tabela

Aplica-se a: Azure Synapse Analytics, PDW (Analytics Platform System)

Não é possível renomear uma tabela enquanto ela estiver em uso. Uma renomeação de uma tabela exige um bloqueio exclusivo na tabela. Se a tabela estiver em uso, você precisará encerrar a sessão usando a tabela. Para terminar uma sessão, use o comando KILL. Use KILL com cuidado, pois quando uma sessão for terminada, qualquer trabalho não confirmado será revertido. As sessões no Azure Synapse Analytics são prefixadas por 'SID'. Será necessário incluir o 'SID' e o número da sessão ao invocar o comando KILL. Este exemplo exibe uma lista de sessões ativas ou ociosas e, em seguida, termina a sessão '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';

E. Renomear uma coluna

Aplica-se a: PDW (Analytics Platform System)

Este exemplo renomeia a coluna FName da tabela Customer para FirstName.

-- Rename the Fname column of the customer table
RENAME OBJECT::Customer COLUMN FName TO FirstName;

RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;

Próximas etapas