RENOMEAÇÃO (Transact-SQL)

Aplica-se a:Azure Synapse Analytics

Renomeia uma tabela criada pelo utilizador em Azure Synapse Analytics.

Este artigo aplica-se apenas ao Azure Synapse Analytics:

  • Para renomear uma base de dados em SQL Server, use o procedimento armazenado sp_renamedb.
  • Para renomear uma base de dados no Base de Dados SQL do Azure, use a ALTER DATABASE instrução (Base de Dados SQL do Azure).
  • A renomeação de pools SQL dedicados autónomos (anteriormente SQL DW) é suportada. A renomeação de um pool SQL dedicado nos espaços de trabalho do Azure Synapse Analytics não é atualmente suportada.
  • Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Syntax

-- Syntax for Azure Synapse Analytics

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

Arguments

RENOMEAR OBJETO [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] table_namePARA new_table_name

Aplica-se a: Azure Synapse Analytics

Mude o nome de uma tabela definida pelo utilizador. Especifique a tabela a ser renomeada com um nome de uma, duas ou três partes. Especifique o novo new_table_name da tabela como um nome de uma só parte.

Permissions

Para executar este comando, precisas desta permissão:

  • Permissão ALTER na mesa

Limitações e Restrições

Não é possível renomear uma tabela externa, índices ou vistas

Não podes renomear uma tabela externa, índices ou vistas. Em vez de mudar de nome, pode eliminar a tabela externa, o índice ou a vista e, em seguida, criá-la novamente com o novo nome.

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

Não pode renomear uma tabela ou base de dados enquanto está em uso. Renomear uma tabela requer um bloqueio exclusivo na mesa. Se a tabela estiver a ser utilizada, pode ser necessário terminar sessões que a utilizam. Para terminar uma sessão, podes usar o comando KILL. Use o KILL com cautela, pois quando uma sessão é terminada, qualquer trabalho não comprometido será revertido. As sessões no Azure Synapse Analytics têm o prefixo 'SID'. Inclua 'SID' e o número da sessão ao invocar o comando KILL. Este exemplo visualiza uma lista de sessões ativas ou inativas e depois termina a sessão 'SID1234'.

Restrições para renomear colunas

Não podes renomear uma coluna que é usada para a distribuição da tabela. Também não podes renomear colunas numa tabela externa ou numa tabela temporária.

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

Ao mudar o nome de uma base de dados, todas as vistas que utilizam o nome da base de dados anterior tornar-se-ão inválidas. Este comportamento aplica-se a visualizações tanto dentro como fora da base de dados. Por exemplo, se a base de dados de Vendas for renomeada, uma vista que contém SELECT * FROM Sales.dbo.table1 tornar-se-á inválida. Para resolver este problema, pode evitar usar nomes de três partes nas visualizações, ou atualizar as vistas para referenciar o novo nome da base de dados.

Ao renomear uma tabela, as vistas não são atualizadas para referenciar o novo nome da tabela. Cada vista, dentro ou fora da base de dados, que faça referência ao nome anterior da tabela tornar-se-á inválida. Para resolver este problema, pode atualizar cada vista para referenciar o novo nome da tabela.

Ao mudar o nome de uma coluna, as vistas não são atualizadas para referenciar o nome novo da coluna. As visualizações continuarão a apresentar o nome antigo da coluna até ser executado um ALTER VIEW. Em certos casos, as visualizações podem tornar-se inválidas por precisar de ser eliminadas e recriadas.

Bloqueio

Renomear uma tabela exige um bloqueio partilhado no DATABASE objeto, um bloqueio partilhado no SCHEMA objeto e um bloqueio exclusivo na tabela.

Examples

A. Renomear uma tabela

Aplica-se a: Azure Synapse Analytics

Este exemplo renomeia a tabela do Cliente para Cliente1.

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

RENAME OBJECT mydb.dbo.Customer TO Customer1;

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

B. Mover uma tabela para um esquema diferente

Aplica-se a: Azure Synapse Analytics

Se a sua intenção for mover o objeto para um esquema diferente, use ALTER SCHEMA. Por exemplo, a seguinte instrução move o item da tabela do esquema do produto para o esquema dbo.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

C. Terminar sessões antes de renomear uma tabela

Aplica-se a: Azure Synapse Analytics

Não podes renomear uma tabela enquanto está em uso. A mudança de nome de uma tabela requer um bloqueio exclusivo da mesa. Se a tabela estiver em uso, pode ser necessário terminar a sessão usando a tabela. Para terminar uma sessão, podes usar o comando KILL. Use o KILL com cautela, pois quando uma sessão é terminada, qualquer trabalho não comprometido será revertido. As sessões no Azure Synapse Analytics têm o prefixo 'SID'. Terá de incluir 'SID' e o número da sessão ao invocar o comando KILL. Este exemplo visualiza uma lista de sessões ativas ou inativas e depois 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';