sql server 2005'te collation değişikliği

11 ay, 5 gün önce yazıldı. Henüz yorumlanmadı.

bir önceki yazı : Hesap Makinesi Nasıl Yapılır?

Collation değiştirmek çoğu zaman mantıklı değildir. Özellikle de production ortamlarında yada anlamlı veriler barındıran database'ler için. Yine de bazan ihtiyacımız olabilir. Şuraya dikkat, değişikliği yapmadan önce db'de önemli data olmadığından emin olun. Bu bir development yada test ortamı olabilir.

Birinci Yol

Değişiklik için birinci yol olarak SQL Server Management Studio kullanılabilir. Bildiğiniz database options ekranından yeni collation'ı seçebilirsiniz. Onay verdiktensonra burada aşağıdaki hatayı almanız muhtemeldir.

The database could not be exclusively locked to perform the operation. ALTER DATABASE failed. The default collation of database 'dev_db' cannot be set to Turkish_CI_AS.

Tabi hata mesajından aslından sebebin bir lock edememe sorunu olduğu bellidir. Hatayı gidermek için bu db'ye ait bağlantıları düşürmeniz gerekecektir. Lokalde çalışıyor iseniz genelde sadece açık sql editörlerini kapatmak yeterli olacaktır. Bağlı kullanıcılar var ise sp_who ile açık bağlantıları bulup kill etmek gerekebilir.

Kullanıcıları düşürüp tekrar management studio'dan değiştirmeyi denediğinizde sorunsuz bir şekilde tamamlayacaktır.

İkinci Yol

İkinci yol olarak sqlcmd kullanılabilir ki bazı durumlarda daha efektif olabilir. Bunun için database'i önce single_user mod'a almak gerekir. Aşağıdaki örnek sanırım laf kalabalığına yer vermeden konuyu açıklamakta..

ALTER DATABASE dev_db SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE dev_db COLLATE Turkish_CI_AS
GO
ALTER DATABASE dev_db SET MULTI_USER
GO

Yorum yapabilirsiniz

 

 



 
Gönder