Home > DATA BASE, SQL Server > SQL Server – Collation

SQL Server – Collation

La collation viene ereditata dall’istanza di SQL Server installata.
La collation impostata identifica un SET di  regole usate per ORDINARE e PARAGONARE (compare e join) i dati.

La collation può essere impostata su più livelli (se non definito espressamente il livello inferiore eredita da quello superiore):
–  Server Collation (istanza sql server) = SQL_Latin1_General_CP1_CI_AS
–  Database Collation = SQL_Latin1_General_CP1_CI_AS
–  Table Collation = SQL_Latin1_General_CP1_CI_AS
–  Column collation = SQL_Latin1_General_CP1_CI_AS

Esempio di creazione di un database con una specifica collation:

create database  MYDBNAME  collate SQL_Latin1_General_CP1_CI_AS
go


Regole:

SQL_SortRules[_Pref]_CPCodepage_<ComparisonStyle:_CaseSensitivity_AccentSensitivity | _BIN>

SortRules
identifica l’alfabeto o la lingua di cui vengono applicate le regole di ordinamento, dipende dall’ambiente (versione Windows, locale, ANSI).
Esempio:  “_Latin1_General”

Pref[opzionale]
Specifica come preferenza l’uso del maiuscolo.

Codepage
CP+Numero (1-4 cifre), identifica la tabella codici utilizzata dalle regole di confronto.
Esempio: CP1  specifica set di caratteri  Inglese Americano=“U.S. English” (code page 1252).  Per tutte le altre tabelle codici viene specificato il numero completo (esempio  CP1251)

ComparisonStyle:
(a) Case-sensitive, Accent-sensitive, Kana-sensitive, Width-sensitive: risolve i seguenti quesiti
-Case Sensitive/Insensitive (‘A’ = ‘a’?)
-Accent Sensitive/ Insensitive (‘a’=’à’?)
-Width-sensitive (single-byte, double-byte ?)
-Kana -sensitive( distinzione tra 2 tipi di Japanese kana characters: Hiragana and Katakana)
Esempio:  _CI = Case Insensitive; _AS = Accent Insensitive

(b) Binary: risolve tutto a livello binario basandosi sul locale e ANSI code page del sistema (rappresenta anche la modalità più veloce come performance) quindi esclude le impostazioni  Case-sensitive, Accent-sensitive, Kana-sensitive, Width-sensitive (ovvero imposta Binary sort = case sensitive; accent sensitive)
Esempio: _BIN

——————————————————————————————-
Per maggiori dettagli vedi:
-technet.microsoft.com/en-us/library/ms143524%28SQL.90%29.aspx
-http://msdn.microsoft.com/it-it/library/ms180175.aspx
——————————————————————————————-

Verifica della Collation del DataBase utilizzato.

Da comando SQL:
Collation dell’istanza (server corrente)

 select SERVERPROPERTY ('collation')
 go

(vedi anche comndo: sp_helpsort)

Collation del DataBase corrente

 select convert(sysname,DatabasePropertyEx(db_name(),'Collation'))
 go

Da Management Studio
MyDataBase > Click dx > Properties  > voce “Collation”


 

 

 

 

Verifica della Collation del DataBase utilizzato.

La collation viene ereditata dall’istanza di SQL Server installata.

 

La collation impostata identifica un SET di  regole usate per ORDINARE e PARAGONARE (compare e join) i dati.

 

La collation può essere impostata su più livelli (se non definito espressamente il livello inferiore eredita da quello superiore):

– Server Collation (istanza sql server) = SQL_Latin1_General_CP1_CI_AS

– Database Collation = SQL_Latin1_General_CP1_CI_AS

– Table Collation = SQL_Latin1_General_CP1_CI_AS

– Column collation = SQL_Latin1_General_CP1_CI_AS

 

Esempio di creazione di un database con una specifica collation:

create database  MYDBNAME  collate SQL_Latin1_General_CP1_CI_AS

go

 

Regole:

(a) Windows system locale:  dipende dall’ambiente (versione Windows, locale, ANSI).

Esempio:  “_Latin1_General” per il set di caratteri  “U.S. English” (code page 1252)

 

(b) Case-sensitive, Accent-sensitive, Kana-sensitive, Width-sensitive, risolve i seguenti quesiti

-Case Sensitive/Insensitive (‘A’ = ‘a’?)

-Accent Sensitive/ Insensitive (‘a’=’à’?)

-Width-sensitive (single-byte, double-byte ?)

Esempio:  _CI = Case Insensitive; _AS = Accent Insensitive

 

(c) Binary: risolve tutto a livello binario basandosi sul locale e ANSI code page del sistema (rappresenta anche la modalità più veloce come performance) quindi esclude le impostazioni Case-sensitive, Accent-sensitive, Kana-sensitive, Width-sensitive (ovvero imposta Binary sort = case sensitive; accent sensitive)

Esempio: _BIN

 

 

(Per maggiori dettagli vedi http://technet.microsoft.com/en-us/library/ms143524%28SQL.90%29.aspx)

 

Da comando SQL:

Collation dell’istanza (server corrente)

select SERVERPROPERTY (‘collation’)

go

 

(vedi anche: sp_helpsort)

 

Collation del DataBase corrente

select convert(sysname,DatabasePropertyEx(db_name(),’Collation’))

go

 

Da Management Studio

MyDataBase > Click dx > Properties  > voce “Collation

 

  1. Al momento, non c'è nessun commento.
  1. No trackbacks yet.

Lascia un commento