Sunucunuz üzerindeki SQL Server kurulumuna ait sunucu Collation değerini değiştirmek isteyen arkadaşlar, biliyorum ordasınız ve kafayı yemek üzeresiniz. Forumlara giriyorsunuz, arıyorsunuz, bakınıyorsunuz, ıı ıhh olmuyor, bulamıyorsunuz. Tırnaklarınızı kemirmekten sıkıldınız, usandınız. Ama bekleyin çaresi var
Öyle internetteki forumlarda yazıldığı gibi, Collation değiştirmek için “ALTER DATABASE” T-SQL cümleciğini kullanın vs. gibi bir laf etmeyeceğim size, direkt çözümü belirteceğim. Ha yeri gelmişken ALTER DATABASE ile veri tabanı Collation değerini nasıl değiştirebileceğinizi de belirteyim.
USE master;
GO
CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO
T-SQL sorgusunu çalıştırırsanız Collation değeri SQL_Latin1_General_CP1_CI_AS olan tempdb veri tabanımızın Collation değerini French_CI_AI olarak değiştirmiş olursunuz. Bu kadar basit. Ama sunucu Collation değerini değiştirmek o kadar kolay değil. Onu nasıl yapacağız peki? Şöyle ki,
- Mevcut veri tabanınızda bulunan bütün veri tabanlarını ve bütün nesneleri yeniden oluşturabileceğiniz tüm script’lere sahip olduğunudan emin olun.
- Veri tabanınızda yer alan bütün verilerinizi uygun bir araç ile EXPORT ediniz.
- Bütün kullanıcı veri tabanlarını DROP ediniz.
- SQLCOLLATION değerini (burda örnek olarak SQL_Latin1_General_CP1_CI_AI değeri verilmiş) doğru bir şekilde yazdığınız aşağıdakine benzer bir komutu, komut satırını kullanarak çalıştırın:
setup.exe /q /ACTION=RebuildDatabase /INSTANCENAME=MSSQLSERVER /SAPWD=”sa-pwd” /SQLSYSADMINACCOUNTS=”BUILTIN\ADMINISTRATORS” /SqlCollation=SQL_Latin1_General_CP1_CI_AI
- Bütün veri tabanlarınızı ve nesnelerinizi yeniden oluşturunuz.
- Bütün verilerinizi IMPORT ediniz.
umarım faydalı olur.
May 27th, 2009 at 4:23 pm
“bütün” verilerimi IMPORT ettim hayatım
May 28th, 2009 at 10:15 am
aferim bebişime