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, veri 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öneticisi izinlerine sahip olmanız gerekir.

Sözdizimi

.altercolumn [DatabaseName .] TableName . ColumnName type = ColumnNewType

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

Parametreler

Ad Tür Zorunlu 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.

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 verilerini 'den T1içine 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 alım işlem hatlarından T1 gelen yeni veriler artık doğru yazılıyor.

  4. Tabloyu bırakma T1_prime

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

    .drop table T1_prime
    

Örnek:

Tablodaki T1 "Sütun1" sütun veri türünü guid'den dizeye 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