Canlı eşya tablosunda varchar uzunluğunu değiştirme


25

Şu anda bir üretim uygulamasıyla kullanımda olan bir MS SQL Server 2008 R2 DB sunucum var.

Uygulamaya yapılan yeni bir geliştirme, artık varchar(100)bir tablodaki bir sütunun uzunluğunun artırılmasını gerektiriyor .

Mevcut veriyi etkilemeden prod DB'deki mevcut kolonun uzunluğu arttırılabilir mi?

Servisin aksamasını önlemek için bu değişiklik mesai saatleri dışında mı yapılmalıdır?

Yanıtlar:


42

Artırıyorsanız varchar(100 - 8000)(yani başka herhangi bir şey varchar(max)) ve bunu SSMS GUI yerine TSQL ile yapıyorsanız

ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL

ve sütun nullability değiştirerek değil NULLiçin NOT NULL(tüm satırları doğrulanır ise tablo kilitlemek hangi potansiyel yazılır veya itibaren) NOT NULLiçin NULL bazı durumlarda o zaman bu hızlı meta verileri yalnızca değişimdir. SCH-MMasanın üzerinde bir kilitlenmeyi beklemesi gerekebilir , ancak bir kez bu değişikliğin hemen gerçekleşeceğini anladı.

Dikkat edilmesi gereken bir uyarı olduğunu bir için bekleme sırasında SCH-Mdiğer sorgular kilit edecek bir eklemeyi düşünün isteyebilirsiniz böylece kuyruk önde bunun yerine atlama daha engellenebilir SET LOCK_TIMEOUTilk.

Ayrıca, ALTER TABLEaçıkça belirttiğiniz ifadede NOT NULL, bunun orijinal sütun hali olup olmadığından, aksi halde sütun izin verilecek şekilde değiştirildiğinden emin olun NULL.


Hızlı cevap için teşekkürler, sadece kontrol ediyordu. Neredeyse anında oldu.
anataliocs
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.