SQL Server'da sütun boyutunu değiştirme


Yanıtlar:


507
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL

6
Çok büyük bir veri tablosunda bir sütunu değiştiriyorsanız dikkatli olun. Bir kazaya neden olabilirsiniz (yine de çevremde).
DavidTheDev

55
Sütun özniteliğe NOT NULLsahipse, sorguda belirtilmesi gerekir, aksi takdirde sütunun NULLvarsayılan olarak ayarlanması gerekir . ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
Suvendu Shekhar Giri

8
Bu sütunda bir dizin varsa, onu bırakmanız gerekir, daha sonra tablo kodunu değiştirip dizini tekrar oluşturun
Sr.PEDRO



19

Özellikten ALTER COLUMNbahsetmeden çalıştırmak NOT NULL, sütunun zaten yoksa boş değerli olarak değiştirilmesine neden olur. Bu nedenle, önce sütunun boş bırakılıp bırakılmadığını kontrol etmeniz ve eğer değilse özniteliği belirtmeniz gerekir NOT NULL. Alternatif olarak, sütunun geçersizliğini kontrol eden ve komutu doğru öznitelikle çalıştıran aşağıdaki ifadeyi kullanabilirsiniz.

IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE        
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NULL

6

Aşağıdaki Şekilde gösterilen Veri Türü'nde tablo -> Tasarım -> değeri değiştir'i seçin.

resim açıklamasını buraya girin

Tablo tasarımını kaydedin.


düzgün kontrol edin bir adım eksik olabilir.
arnav

7
Araçlar -> Seçenekler ... /> Tasarımcılar -> Tablo ve Veritabanı Tasarımcıları - "Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle"
7anner

Çoğu şey için senaryo yazmayı tercih ederim. Ancak sütun değişiklikleri için kullanıcı arayüzünü seviyorum. NOT NULL veya herhangi bir hesaplamayı veya ek sütun özelliklerini kontrol etmeyi unutmayın. Kaydet'i tıklamanız yeterlidir (SSMS'deki ayarları @ 7anner notları olarak değiştirdikten sonra).
Jacob H

1

İlginç bir yaklaşım burada bulunabilir: Spaghettidba tarafından Kesintisiz Sütunlarınızı Nasıl Genişletirsiniz?

Bu sütunu düz bir “ALTER TABLE” komutuyla büyütmeye çalışırsanız, SQLServer'ın tüm satırları geçmesini ve yeni veri türünü yazmasını beklemeniz gerekir.

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;

Bu rahatsızlığın üstesinden gelmek için, tablonuzun alabileceği sihirli bir sütun büyütme hapı vardır ve buna Satır Sıkıştırma denir . (...) Satır Sıkıştırma ile sabit boyutlu sütunlarınız yalnızca gerçek verilerin sığabileceği en küçük veri türünün ihtiyaç duyduğu alanı kullanabilir.

Tablo ROWdüzeyinde sıkıştırıldığında, ALTER TABLE ALTER COLUMNyalnızca meta veri işlemi olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.