Aracılığıyla paylaş


.alter column komutu

Varolan bir tablo sütununun veri türünü değiştirir.

Uyarı

Bir sütunun veri türünü değiştirirken, bu sütundaki önceden var olan veriler gelecekteki sorgularda null değer döndürür. kullandıktan .alter columnsonra, sütun türünü önceki bir değere geri döndürmek için başka bir komut kullanılarak bile bu veriler kurtarılamaz. Önceden var olan verileri korumanız gerekiyorsa, verileri kaybetmeden bir sütunun türünü değiştirmek için önerilen yordamımıza bakın.

İzinler

Bu komutu çalıştırmak için en az Tablo Yönetici izinlerine sahip olmanız gerekir.

Syntax

.altercolumn [DatabaseName.] Tablename.Columnnametype=ColumnNewType

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
Databasename string Tabloyu içeren veritabanının adı.
TableName string ✔️ Değiştirecek sütunu içeren tablonun adı.
Columnname string ✔️ Değiştirecek sütunun adı.
ColumnNewType string ✔️ Sütunun yeni veri türü .

Örnek

.alter column ['Table'].['ColumnX'] type=string

Veri kaybı olmadan sütun türünü değiştirme

Geçmiş verileri korurken sütun türünü değiştirmek için yeni, düzgün yazılan bir tablo oluşturun.

Bir sütun türünü değiştirmek istediğiniz her tablo T1 için aşağıdaki adımları yürütebilirsiniz:

  1. Doğru şemaya sahip bir tablo T1_prime oluşturun (doğru sütun türleri ve aynı sütun sırası).

  2. Gerekli veri dönüştürmelerini uygulayarak verileri 'den T1'e T1_prime alın. Aşağıdaki örnekte, Sütun1 dize veri türüne dönüştürülüyor.

    .set-or-append T1_prime <| T1 | extend Col1=tostring(Col1)
    
  3. Tablo adlarının değiştirilmesine izin veren .rename tables komutunu kullanarak tabloları değiştirin.

    .rename tables T_prime=T1, T1=T_prime
    

    Komut tamamlandığında, mevcut alma işlem hatlarından gelen yeni veriler artık doğru yazıldığında bu veri akışı T1 yapılır.

  4. Tabloyu bırakma T1_prime

    T1_prime geçmiş verilerin yalnızca bir kopyasını içerir (şema değiştirilmeden önce) ve içindeki şema ve verilerin T1 doğru güncelleştirildiğinden emin olduktan sonra güvenle bırakılabilir.

    .drop table T1_prime
    

Örnek:

Tablodaki T1 "Sütun1" veri türünü guid olan dize olarak değiştirin.

// 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