Comando .rename table

Altera o nome de uma tabela existente.

O .rename tables comando altera o nome de várias tabelas na base de dados como uma única transação.

Permissões

Tem de ter, pelo menos, permissões de Administração tabela para executar este comando.

Syntax

.renametableOldNametoNewName

.renametablesNewName=OldName [ifexists] [, ...]

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
OldName string ✔️ O nome de uma tabela existente. É gerado um erro e todo o comando falha se OldName não atribuir um nome a uma tabela existente, a menos que ifexists seja especificado.
NewName string ✔️ O novo nome da tabela que costumava chamar-se OldName.
ifexists string Se for especificado, o comando processará o cenário em que a tabela não existe. Em vez de falhar, irá prosseguir sem tentar mudar o nome da tabela que não existe.

Observações

Este comando funciona apenas em tabelas da base de dados no âmbito. Os nomes das tabelas não podem ser qualificados com nomes de clusters ou bases de dados.

Este comando não cria novas tabelas, nem remove tabelas existentes. A transformação descrita pelo comando tem de ser tal que o número de tabelas na base de dados não é alterado.

O comando suporta a troca de nomes de tabelas ou permutações mais complexas, desde que cumpram as regras acima. Por exemplo, ingerir dados em múltiplas tabelas de teste e, em seguida, trocá-los por tabelas existentes numa única transação.

Exemplos

Imagine uma base de dados com as seguintes tabelas: A, B, Ce A_TEMP. O comando seguinte irá trocar A e A_TEMP (para que a A_TEMP tabela seja agora denominada Ae ao contrário), mude o nome B para NEWBe mantenha C como está.

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

A seguinte sequência de comandos:

  1. Cria uma nova tabela temporária
  2. Substitui uma tabela existente ou existente pela nova tabela
// 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

Mudar o nome da tabela de origem de uma vista materializada

Se o nome da tabela for a tabela de origem de uma vista materializada, pode especificar a seguinte propriedade como parte do .rename comando:

.renametableOldNametoNewNamewith (updateMaterializedViews=true)

O nome da tabela será mudado e todas as vistas materializadas que referenciem OldName serão atualizadas para apontar para NewName, de forma transacional.

Nota

O comando só funcionará se a tabela de origem for referenciada diretamente na consulta de vista materializada. Se a tabela de origem for referenciada a partir de uma função armazenada invocada pela consulta de visualização, o comando falhará, uma vez que o comando não consegue atualizar a função armazenada.