Modificare il tipo di colonna senza perdita di dati
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Il comando alter column modifica il tipo di colonna, rendendo i dati originali irreversibili. Per mantenere i dati preesistenti durante la modifica del tipo di colonna, creare una nuova tabella tipizzata correttamente.
Per ogni tabella OriginalTable
in cui si vuole modificare un tipo di colonna, seguire questa procedura:
Creare una tabella
NewTable
con lo schema corretto (i tipi di colonna destra e lo stesso ordine di colonna).Inserire i dati in
NewTable
daOriginalTable
, applicando le trasformazioni dei dati necessarie. Nell'esempio seguente Col1 viene convertito nel tipo di dati string..set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Usare il comando .rename tables per scambiare i nomi delle tabelle .
.rename tables NewTable=OriginalTable, OriginalTable=NewTable
Al termine del comando, i nuovi dati delle pipeline di inserimento esistenti passano a
OriginalTable
che ora vengono digitati correttamente.Eliminare la tabella
NewTable
.NewTable
include solo una copia dei dati cronologici da prima della modifica dello schema. Può essere eliminato in modo sicuro dopo aver confermato lo schema e i dati inOriginalTable
sono stati aggiornati correttamente..drop table NewTable
Esempio
Nell'esempio seguente viene aggiornato lo schema di OriginalTable
mantenendo i dati.
Creare la tabella, OriginalTable
, con una colonna " Col1" di tipo GUID.
.create table OriginalTable (Col1:guid, Id:int)
Inserire quindi i dati in OriginalTable
.
.ingest inline into table OriginalTable <|
b642dec0-1040-4eac-84df-a75cfeba7aa4,1
c224488c-ad42-4e6c-bc55-ae10858af58d,2
99784a64-91ad-4897-ae0e-9d44bed8eda0,3
d8857a93-2728-4bcb-be1d-1a2cd35386a7,4
b1ddcfcc-388c-46a2-91d4-5e70aead098c,5
Creare la tabella, NewTable
di tipo string.
.create table NewTable (Col1:string, Id:int)
Aggiungere dati da OriginalTable
a NewTable
e usare la funzione per convertire la tostring()
colonna "Col1" dal GUID di tipo alla stringa di tipo.
.set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Scambiare i nomi delle tabelle.
.rename tables NewTable = OriginalTable, OriginalTable = NewTable
Eliminare la tabella con NewTable
lo schema e i dati precedenti.
.drop table NewTable