Comando .alter column
Altera o tipo de dados de uma coluna de tabela existente.
Aviso
Ao alterar o tipo de dados de uma coluna, quaisquer dados pré-existentes nessa coluna retornarão um valor nulo em consultas futuras.
Depois de usar .alter column
o , esses dados não podem ser recuperados, mesmo usando outro comando para alterar o tipo de coluna de volta para um valor anterior.
Se você precisar preservar dados pré-existentes, consulte nosso procedimento recomendado para alterar o tipo de coluna sem perder dados.
Permissões
Você deve ter pelo menos permissões de administrador de tabela para executar esse comando.
Sintaxe
.alter
column
[DatabaseName .
] TableName .
ColumnName type
=
ColumnNewType
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
DatabaseName | string |
O nome do banco de dados que contém a tabela. | |
TableName | string |
✔️ | O nome da tabela que contém a coluna a ser alterada. |
ColumnName | string |
✔️ | O nome da coluna a ser alterada. |
ColumnNewType | string |
✔️ | O novo tipo de dados para a coluna. |
Exemplo
.alter column ['Table'].['ColumnX'] type=string
Alterando o tipo de coluna sem perda de dados
Para alterar o tipo de coluna enquanto retém os dados históricos, crie uma nova tabela digitada corretamente.
Para cada tabela T1
na qual você deseja alterar um tipo de coluna, execute as seguintes etapas:
Crie uma tabela
T1_prime
com o esquema correto (os tipos de coluna da direita e a mesma ordem de coluna).Ingerir os dados em
T1_prime
, aplicando as transformações deT1
dados necessárias. No exemplo abaixo, Col1 está sendo convertido para o tipo de dados de cadeia de caracteres..set-or-append T1_prime <| T1 | extend Col1=tostring(Col1)
Troque as tabelas usando o comando .rename tables , que permite a troca de nomes de tabelas.
.rename tables T_prime=T1, T1=T_prime
Quando o comando for concluído, os novos dados dos pipelines de ingestão existentes fluirão para
T1
os quais agora serão digitados corretamente.Solte a tabela
T1_prime
T1_prime
incluirá apenas uma cópia dos dados históricos (antes da alteração do esquema) e poderá ser descartada com segurança após a confirmação de que o esquema e os dados foramT1
atualizados corretamente..drop table T1_prime
Exemplo:
Altere o tipo de dados da coluna "Col1" na tabela T1
de guid para string.
// 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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de