SQL Collation nedir? #DatabaseOptions

Page Header kategorisi altındaki ayarlardan olan Collation’ı inceleyeceğim.

Collation nedir?

Veritabanının dil değerini seçebileceğimiz kısımdır. Seçtiğimiz dil’e ait harfler ve karakterler veritabanımız tarafından kabul edilebilir hale gelecektir.

Seçenekler

  • Binlerce seçeneğe sahiptir.

Best Practice

Best practice yoktur, veritabanını kullanım durumuna göre değişiklik göstermektedir.

Collation ayarını nasıl düzenleyebilirim?

  • T-SQL ile
use [master]

ALTER DATABASE [OptionsTest] COLLATE Turkish_CI_AS ;  
  • Management Studio (SSMS) ile

Database > (Sağ Tık) Properties > Options > Collation

Tavsiyeler

Veritabanı collation değiştirilmeye karar verildiğinde, tablolarda bulunan charvarchartextncharnvarcharntext tipine sahip kolonların collation değerleri kontrol edilmeli ve düzenlenmelidir. Aksi halde sorgular collation dönüşümlerinden kaynaklı hata alabilir.

Demo

Collation ayarının ne olduğunu görmek için aşağıdaki syntax’ı kullanabiliriz.

SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'OptionsTest'; 

Turkish olarak değiştiriyorum,

USE master 
GO  
ALTER DATABASE [OptionsTest]  
COLLATE Turkish_CI_AS ;  
GO  

Msg 5030, Level 16, State 5, Line 3
The database could not be exclusively locked to perform the operation.
Msg 5072, Level 16, State 1, Line 3
ALTER DATABASE failed. The default collation of database 'OptionsTest' cannot be set to Turkish_CI_AS.

Veritabanı kullanımda olduğu için değişikliği yapamayıp hata aldık. Veritabanın kullanımadığı bir zamanda veya ALTER edilirken lock’layan sorgulara müdahale edip değişikliği yapabiliriz.

1 yorum

Yorum Gönderin

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.