Condividi tramite


Comando .rename table

Modifica il nome di una tabella esistente.

Il .rename tables comando modifica il nome di una serie di tabelle nel database come singola transazione.

Autorizzazioni

Per eseguire questo comando, è necessario disporre almeno delle autorizzazioni di amministratore tabella .

Sintassi

.renametable OldName NewName to

.renametables NewName = OldName [ifexists] [, ...]

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
OldName string ✔️ Nome di una tabella esistente. Viene generato un errore e l'intero comando ha esito negativo se OldName non assegna un nome a una tabella esistente, a meno che ifexists non venga specificato.
NewName string ✔️ Nuovo nome per la tabella da chiamare OldName.
ifexists string Se specificato, il comando gestirà lo scenario in cui la tabella non esiste. Invece di non riuscire, procederà senza tentare di rinominare la tabella che non esiste.

Osservazioni:

Questo comando opera solo su tabelle del database nell'ambito. I nomi delle tabelle non possono essere qualificati con nomi di cluster o database.

Questo comando non crea nuove tabelle né rimuove le tabelle esistenti. La trasformazione descritta dal comando deve essere tale che il numero di tabelle nel database non venga modificato.

Il comando supporta lo scambio di nomi di tabella o permutazioni più complesse, purché rispettino le regole precedenti. Ad esempio, inserire dati in più tabelle di staging e quindi scambiarli con tabelle esistenti in una singola transazione.

Esempi

Si immagini un database con le tabelle seguenti: A, B, Ce A_TEMP. Il comando seguente scambia A e A_TEMP (in modo che la A_TEMP tabella venga ora chiamata Ae l'altra strada), rinominare B NEWBin e mantenere C così com'è.

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

La sequenza di comandi seguente:

  1. Crea una nuova tabella temporanea
  2. Sostituisce una tabella esistente o non esistente con la nuova tabella
// 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

Rinominare la tabella di origine di una vista materializzata

Se la tabella da rinominare è la tabella di origine di una vista materializzata, è possibile specificare la proprietà seguente come parte del .rename comando:

.renametable OldName NewName to with (updateMaterializedViews=true)

La tabella verrà rinominata e tutte le viste materializzate che fanno riferimento a OldName verranno aggiornate in modo da puntare a NewName, in modo transazionale.

Nota

Il comando funzionerà solo se si fa riferimento alla tabella di origine direttamente nella query di vista materializzata. Se viene fatto riferimento alla tabella di origine da una funzione archiviata richiamata dalla query di visualizzazione, il comando avrà esito negativo perché il comando non può aggiornare la funzione archiviata.