Příkaz .alter column
Změní datový typ existujícího sloupce tabulky.
Upozornění
Při změně datového typu sloupce vrátí všechna dříve existující data v daném sloupci v budoucích dotazech hodnotu null .
Po použití .alter column
nelze tato data obnovit, a to ani pomocí jiného příkazu, který změní typ sloupce zpět na předchozí hodnotu.
Pokud potřebujete zachovat už existující data, projděte si doporučený postup pro změnu typu sloupce bez ztráty dat.
Oprávnění
Ke spuštění tohoto příkazu musíte mít alespoň Správa oprávnění.
Syntax
.alter
column
[DatabaseName.
] Tablename.
Columnnametype
=
Typ ColumnNewType
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Databasename | string |
Název databáze, která obsahuje tabulku. | |
TableName | string |
✔️ | Název tabulky, která obsahuje sloupec, který chcete změnit. |
Columnname | string |
✔️ | Název sloupce, který chcete změnit. |
Typ ColumnNewType | string |
✔️ | Nový datový typ sloupce. |
Příklad
.alter column ['Table'].['ColumnX'] type=string
Změna typu sloupce bez ztráty dat
Pokud chcete změnit typ sloupce při zachování historických dat, vytvořte novou tabulku se správným typem.
Pro každou tabulku T1
, ve které chcete změnit typ sloupce, proveďte následující kroky:
Vytvořte tabulku
T1_prime
se správným schématem (typy pravých sloupců a stejné pořadí sloupců).Ingestujte data do
T1_prime
zT1
a použijte požadované transformace dat. V následujícím příkladu se sloupec Col1 převádí na datový typ řetězec..set-or-append T1_prime <| T1 | extend Col1=tostring(Col1)
Prohození tabulek pomocí příkazu .rename tables , který umožňuje prohození názvů tabulek.
.rename tables T_prime=T1, T1=T_prime
Po dokončení příkazu se nová data z existujících kanálů příjmu dat přeteče do
T1
, která jsou nyní zadána správně.Přetažení tabulky
T1_prime
T1_prime
bude obsahovat pouze kopii historických dat (před změnou schématu) a po potvrzení správné aktualizace schématu a dat vT1
souboru lze bezpečně odstranit..drop table T1_prime
Příklad:
Změňte datový typ sloupce Col1 v tabulce T1
z guid na řetězec.
// Create table T1
.create table T1 (Col1:guid, Id:int)
// Ingest sample data into T1
.ingest inline into table T1 <|
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
// Create table T1_prime with the correct schema and same column order
.create table T1_prime (Col1:string, Id:int)
// Append data to the new table
.set-or-append T1_prime <| T1 | extend Col1=tostring(Col1)
// Rename tables
.rename tables T1_prime = T1, T1 = T1_prime
// Drop table T1_prime, which now has the old schema and data
.drop table T1_prime
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro