Tüm verileri dışa aktarma (girişler, bağlantılı sunucular, SQL Agent işleri, DB Mail ayarları, vb. Dahil) ve örnek düzeyindeki verileri yeniden oluşturmak, ayrıca tüm kullanıcı verilerini yeniden yüklemek çok fazla iş gerektirir. Tüm bunlardan sonra bile, bir veritabanının varsayılan harmanlamasını ALTER DATABASE
, işlemin tamamlanmasını engelleyecek birkaç koşul olduğundan , güncelleme yapabileceğinizin bir garantisi yoktur (lütfen ayrıntılar için ALTER DATABASE
belgelerin "Veritabanı Harmanlamasını Değiştirme" bölümüne bakın) .
Ancak, çok daha kolay olan belgelenmemiş bir yöntem var . En büyük dezavantajı desteklenmemesi. Bu, bir şeyin ters gideceğini söylemek değildir, yalnızca bir şey olursa, Microsoft'un düzeltmeye yardımcı olmayacağı (çünkü bunun işe yarayacağını asla garanti etmedikleri) söylenir.
Ben söz yöntem çalıştığı sqlservr.exe
ile -q {new_collation_name}
anahtar. Bundan biraz daha fazlası var, ama temel fikir bu. Bu yöntem, temel olarak, faydaları ve sonuçları olan sistem meta verilerini günceller:
FAYDALARI
- oldukça hızlı
ALTER DATABASE
çalışmasını engelleyen çoğu kısıtlamayı atlayın
- Nesneleri düşürmek ve yeniden yaratmak için insanların yıllar içinde bulabildikleri herhangi bir komut dosyasından çok daha hassas
KUSURLARI
- bir şeyler ters giderse desteklenmez
VARCHAR
veri olabilir kod sayfası eski ve yeni alfabe arasındaki farklı, IF, değiştirmek ve 255 (0x80 - - 0xFF) 128 değerlerle karakterler var, ve bu karakterlerin yeni kod aynı değere sahip aynı karakter olarak var olmayan sayfa. Bu yüzden potansiyel veri kaybı için var ve bu durumun mevcut olmadığından emin olmak için önce verilerinizin araştırılması gerekiyor. Ancak, bu , kod sayfası değişse bile, sadece 0 - 127 değerleri olan, herhangi bir tehlike altında olmayan karakterleri olan birçok durum olduğu anlamına gelir .
- Kullanıcı Tanımlı Tablo Tipleri (UDTT'ler) atlanır ve manuel olarak güncellenmeleri gerekir.
sqlservr.exe -q
Yöntemin ne yaptığı ve ne yapmadığına dair ayrıntılı bir açıklama için (harmanlamaların çeşitli düzeylerde nasıl çalıştığı ve dikkat edilmesi gereken konular hakkında ayrıntılı bilgi dahil), lütfen yazıma bakın:
Örneğin Harmanlamasının, Veritabanlarının ve Tüm Kullanıcı Veritabanlarındaki Tüm Sütunların Değiştirilmesi: Ne Yanlış Yanlış Olabilir?
(Sistem veritabanları dahil: Sadece örneğini değiştirmek için master
, model
, msdb
, ve tempdb
) ve bir veya birden fazla veri tabanları (ama hepsi veritabanları), basitçe bu operasyonun dışında tutmak istediğiniz veritabanı (ler) ayırmak ve sonra bunları yeniden takmak harmanlama güncellemesi tamamlandıktan sonra.