Comando .alter column
Modifica el tipo de datos de una columna de tabla existente.
Advertencia
Al modificar el tipo de datos de una columna, los datos preexistentes de esa columna devolverán un valor NULL en futuras consultas.
Después de usar .alter column
, esos datos no se pueden recuperar, incluso mediante otro comando para modificar el tipo de columna a un valor anterior.
Si necesita conservar los datos preexistentes, consulte nuestro procedimiento recomendado para cambiar el tipo de una columna sin perder datos.
Permisos
Debe tener al menos permisos de administrador de tablas para ejecutar este comando.
Sintaxis
.alter
column
[DatabaseName ] TableName .
.
ColumnName type
=
ColumnNewType
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
DatabaseName | string |
Nombre de la base de datos que contiene la tabla. | |
TableName | string |
✔️ | Nombre de la tabla que contiene la columna que se va a modificar. |
ColumnName | string |
✔️ | Nombre de la columna que se va a modificar. |
ColumnNewType | string |
✔️ | Nuevo tipo de datos de la columna. |
Ejemplo
.alter column ['Table'].['ColumnX'] type=string
Cambio del tipo de columna sin pérdida de datos
Para cambiar el tipo de columna al conservar los datos históricos, cree una tabla con tipo correcto.
Para cada tabla T1
en la que desea cambiar un tipo de columna, ejecute los pasos siguientes:
Cree una tabla
T1_prime
con el esquema correcto (los tipos de columna correctos y el mismo orden de columna).Ingerir los datos en
T1_prime
desdeT1
, aplicando las transformaciones de datos necesarias. En el ejemplo siguiente, Col1 se convierte en el tipo de datos de cadena..set-or-append T1_prime <| T1 | extend Col1=tostring(Col1)
Cambie las tablas mediante el comando .rename tables , que permite intercambiar nombres de tabla.
.rename tables T_prime=T1, T1=T_prime
Cuando se completa el comando, los nuevos datos de las canalizaciones de ingesta existentes fluyen a
T1
que ahora se escriben correctamente.Quitar la tabla
T1_prime
T1_prime
incluirá solo una copia de los datos históricos (antes del cambio de esquema) y se puede quitar de forma segura después de confirmar que el esquema y los datos enT1
se actualizaron correctamente..drop table T1_prime
Ejemplo:
Cambie el tipo de datos "Col1" de la columna de guid T1
a cadena.
// 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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de