Windows_collation_name (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Specifica il nome delle regole di confronto di Windows nella clausola COLLATE in SQL Server. Il nome delle regole di confronto Windows è composto dalla designazione delle regole di confronto e dagli stili di confronto.

Convenzioni di sintassi Transact-SQL

Sintassi

<Windows_collation_name> :: =
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> :: =
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ] 
}
| { _UTF8 }
| { _BIN | _BIN2 }

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

CollationDesignator
Specifica le regole alla base delle regole di confronto Windows, ovvero:

  • Le regole di ordinamento e confronto applicate quando si specifica l'ordinamento del dizionario. Le regole di ordinamento si basano sull'alfabeto o sulla lingua.
  • La tabella codici utilizzata per memorizzare i dati varchar.

Di seguito sono riportati alcuni esempi:

  • Latin1_General o francese: entrambi usano la tabella codici 1252.
  • Turco: viene utilizzata la tabella codici 1254.

CaseSensitivity
CI specifica che la distinzione tra maiuscole e minuscole non è rilevante, mentre CS indica che la differenza tra maiuscole e minuscole è rilevante.

AccentSensitivity
AI specifica che la distinzione tra caratteri accentati e non accentati non è rilevante, mentre AS indica che la distinzione tra caratteri accentati e non accentati è rilevante.

KanatypeSensitive
Omettendo questa opzione si specifica che la distinzione Kana non è rilevante. KS specifica che la distinzione Kana è rilevante.

WidthSensitivity
Omettendo questa opzione si specifica che la distinzione di larghezza non è rilevante. WS specifica che la distinzione di larghezza è rilevante.

VariationSelectorSensitivity

  • Si applica a: SQL Server a partire da 2017 (14.x)

  • Omettendo questa opzione si specifica che il selettore di variazione non è rilevante, VSS specifica che il selettore di variazione è rilevante.

UTF8

BIN
Specifica che deve essere usato il tipo di ordinamento binario compatibile con le versioni precedenti.

BIN2
Specifica l'ordinamento binario che utilizza la semantica del confronto dei punti di codice.

Osservazioni:

A seconda della versione delle regole di confronto, per alcuni punti di codice potrebbero non essere stati definiti pesi di ordinamento e/o il mapping tra caratteri maiuscoli e minuscoli. Ad esempio, confrontare l'output della funzione LOWER quando viene assegnato lo stesso carattere, ma con versioni diverse delle stesse regole di confronto:

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];
-- Ǹ    ǹ


SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];
-- Ǹ    ǹ

La prima istruzione mostra sia la forma maiuscola che minuscola di questo carattere nelle regole di confronto precedenti perché le regole di confronto non influenzano la disponibilità dei caratteri quando usano dati Unicode. La seconda istruzione, invece, mostra che viene restituito un carattere maiuscolo quando le regole di confronto sono Latin1_General_CI_AS, perché al loro interno non è definito un mapping ai caratteri minuscoli in questo punto del codice.

Con alcune lingue può essere fondamentale evitare le regole di confronto precedenti. Ad esempio, questo vale per il telugu.

In alcuni casi, le regole di confronto di Windows e quelle di SQL Server possono generare piani di query diversi per la stessa query.

Esempi

Di seguito sono riportati alcuni esempi di nomi delle regole di confronto di Windows:

  • Latin1_General_100_CI_AS

    Le regole di confronto utilizzano le regole di ordinamento del dizionario Latin1 General ed eseguono il mapping alla tabella codici 1252. Sono regole di confronto con versione _100 per cui la distinzione tra maiuscole e minuscole non è rilevante mentre è rilevante la distinzione tra caratteri accentati e non accentati.

  • Estonian_CS_AS

    Le regole di confronto utilizzano le regole di ordinamento del dizionario estone ed eseguono il mapping alla tabella codici 1257. Sono regole di confronto con versione _80 (indicata implicitamente dalla mancanza del numero di versione nel nome) per cui la distinzione tra maiuscole e minuscole è rilevante la distinzione tra caratteri accentati e non accentati è rilevante.

  • Japanese_Bushu_Kakusu_140_BIN2

    Le regole di confronto utilizzano le regole di ordinamento del punto di codice binario ed eseguono il mapping alla tabella codici 932. Sono regole di confronto con versione _140 e le regole di ordinamento del dizionario Bushu Kakusu giapponese vengono ignorate.

Regole di confronto di Windows

Per elencare le regole di confronto di Windows supportate dall'istanza di SQL Server, eseguire la query seguente.

SELECT * FROM sys.fn_helpcollations() WHERE [name] NOT LIKE N'SQL%';

Nella tabella seguente vengono elencate tutte le regole di confronto di Windows supportate in SQL Server.

Impostazioni locali di Windows Regole di confronto versione 100 Regole di confronto 90
Alsaziano (Francia) Latin1_General_100_ Non disponibile
Amarico (Etiopia) Latin1_General_100_ Non disponibile
Armeno (Armenia) Cyrillic_General_100_ Non disponibile
Assamese (India) Assamese_100_ 1 Non disponibile
Bengalese (Bangladesh) Bengali_100_1 Non disponibile
Baschiro (Russia) Bashkir_100_ Non disponibile
Basco (Basco) Latin1_General_100_ Non disponibile
Bengalese (India) Bengali_100_1 Non disponibile
Bosniaco (Bosnia ed Erzegovina, alfabeto cirillico) Bosnian_Cyrillic_100_ Non disponibile
Bosniaco (Bosnia ed Erzegovina, alfabeto latino) Bosnian_Latin_100_ Non disponibile
Bretone (Francia) Breton_100_ Non disponibile
Cinese (RAS di Macao) Chinese_Traditional_Pinyin_100_ Non disponibile
Cinese (RAS di Macao) Chinese_Traditional_Stroke_Order_100_ Non disponibile
Cinese (Singapore) Chinese_Simplified_Stroke_Order_100_ Non disponibile
Corso (Francia) Corsican_100_ Non disponibile
Croato (Bosnia ed Erzegovina, alfabeto latino) Croatian_100_ Non disponibile
Dari (Afghanistan) Dari_100_ Non disponibile
Inglese (India) Latin1_General_100_ Non disponibile
Inglese (Malaysia) Latin1_General_100_ Non disponibile
Inglese (Singapore) Latin1_General_100_ Non disponibile
Filippino (Filippine) Latin1_General_100_ Non disponibile
Frisone (Paesi Bassi) Frisian_100_ Non disponibile
Georgiano (Georgia) Cyrillic_General_100_ Non disponibile
Groenlandese (Groenlandia) Danish_Greenlandic_100_ Non disponibile
Gujarati (India) Indic_General_100_1 Indic_General_90_
Hausa (Nigeria, alfabeto latino) Latin1_General_100_ Non disponibile
Hindi (India) Indic_General_100_1 Indic_General_90_
Igbo (Nigeria) Latin1_General_100_ Non disponibile
Inuktitut (Canada, alfabeto latino) Latin1_General_100_ Non disponibile
Inuktitut (alfabeto sillabico) Canada Latin1_General_100_ Non disponibile
Irlandese (Irlanda) Latin1_General_100_ Non disponibile
Giapponese (Giappone XJIS) Japanese_XJIS_100_ Japanese_90_, Japanese_
Giapponese (Giappone) Japanese_Bushu_Kakusu_100_ Non disponibile
Kannada (India) Indic_General_100_1 Indic_General_90_
Khmer (Cambogia) Khmer_100_1 Non disponibile
Quiché (Guatemala) Modern_Spanish_100_ Non disponibile
Kinyarwanda (Ruanda) Latin1_General_100_ Non disponibile
Konkani (India) Indic_General_100_1 Indic_General_90_
Lao (Repubblica popolare democratica del Laos) Lao_100_1 Non disponibile
Basso sorabo (Germania) Latin1_General_100_ Non disponibile
Lussemburghese (Lussemburgo) Latin1_General_100_ Non disponibile
Malayalam (India) Indic_General_100_1 Non disponibile
Maltese (Malta) Maltese_100_ Non disponibile
Maori (Nuova Zelanda) Maori_100_ Non disponibile
Mapudungun (Cile) Mapudungan_100_ Non disponibile
Marathi (India) Indic_General_100_1 Indic_General_90_
Mohawk (Canada) Mohawk_100_ Non disponibile
Mongolo (RPC) Cyrillic_General_100_ Non disponibile
Nepalese (Nepal) Nepali_100_1 Non disponibile
Norvegese (Bokmål, Norvegia) Norwegian_100_ Non disponibile
Norvegese (Nynorsk, Norvegia) Norwegian_100_ Non disponibile
Occitano (Francia) French_100_ Non disponibile
Odia (India) Indic_General_100_1 Non disponibile
Pashto (Afghanistan) Pashto_100_1 Non disponibile
Persiano (Iran) Persian_100_ Non disponibile
Punjabi (India) Indic_General_100_1 Indic_General_90_
Quechua (Bolivia) Latin1_General_100_ Non disponibile
Quechua (Ecuador) Latin1_General_100_ Non disponibile
Quechua (Perù) Latin1_General_100_ Non disponibile
Romancio (Svizzera) Romansh_100_ Non disponibile
Sami (Inari, Finlandia) Sami_Sweden_Finland_100_ Non disponibile
Sami (Lule, Norvegia) Sami_Norway_100_ Non disponibile
Sami (Lule, Svezia) Sami_Sweden_Finland_100_ Non disponibile
Sami (settentrionale, Finlandia) Sami_Sweden_Finland_100_ Non disponibile
Sami (settentrionale, Norvegia) Sami_Norway_100_ Non disponibile
Sami (settentrionale, Svezia) Sami_Sweden_Finland_100_ Non disponibile
Sami (Skolt, Finlandia) Sami_Sweden_Finland_100_ Non disponibile
Sami (meridionale, Norvegia) Sami_Norway_100_ Non disponibile
Sami (meridionale, Svezia) Sami_Sweden_Finland_100_ Non disponibile
Sanscrito (India) Indic_General_100_1 Indic_General_90_
Serbo (Bosnia ed Erzegovina, alfabeto cirillico) Serbian_Cyrillic_100_ Non disponibile
Serbo (Bosnia ed Erzegovina, alfabeto latino) Serbian_Latin_100_ Non disponibile
Serbo (Serbia, alfabeto cirillico) Serbian_Cyrillic_100_ Non disponibile
Serbo (Serbia, alfabeto latino) Serbian_Latin_100_ Non disponibile
Sotho del nord/Sotho settentrionale (Sudafrica) Latin1_General_100_ Non disponibile
SeTswana/Tswana (Sudafrica) Latin1_General_100_ Non disponibile
Singalese (Sri Lanka) Indic_General_100_1 Non disponibile
Swahili (Kenya) Latin1_General_100_ Non disponibile
Siriano (Siria) Syriac_100_1 Syriac_90_
Tagico (Tajikistan) Cyrillic_General_100_ Non disponibile
Tamazight (Algeria, alfabeto latino) Tamazight_100_ Non disponibile
Tamil (India) Indic_General_100_1 Indic_General_90_
Telugu (India) Indic_General_100_1 Indic_General_90_
Tibetano (RPC) Tibetan_100_1 Non disponibile
Turcomanno (Turkmenistan) Turkmen_100_ Non disponibile
Uiguro (RPC) Uighur_100_ Non disponibile
Alto sorabo (Germania) Upper_Sorbian_100_ Non disponibile
Urdu (Pakistan) Urdu_100_ Non disponibile
Gallese (Regno Unito) Welsh_100_ Non disponibile
Wolof (Senegal) French_100_ Non disponibile
Xhosa/isiXhosa (Sudafrica) Latin1_General_100_ Non disponibile
Sacha (Russia) Yakut_100_ Non disponibile
Yi (RPC) Latin1_General_100_ Non disponibile
Yoruba (Nigeria) Latin1_General_100_ Non disponibile
Zulu/isiZulu (Sudafrica) Latin1_General_100_ Non disponibile
Deprecato, non disponibile a livello di server in SQL Server 2008 (10.0.x) o versione successiva Hindi Hindi
Deprecato, non disponibile a livello di server in SQL Server 2008 (10.0.x) o versione successiva Korean_Wansung_Unicode Korean_Wansung_Unicode
Deprecato, non disponibile a livello di server in SQL Server 2008 (10.0.x) o versione successiva Lithuanian_Classic Lithuanian_Classic
Deprecato, non disponibile a livello di server in SQL Server 2008 (10.0.x) o versione successiva Macedone Macedone

1 Le regole di confronto solo Unicode di Windows possono essere applicate solo a dati a livello di colonna o a livello di espressione. Tali regole non possono essere usate come regole di confronto del server o del database.

2 Come le regole di confronto cinese (Taiwan), il cinese (Macao SAR) usa le regole del cinese semplificato; a differenza del cinese (Taiwan), usa la tabella codici 950.

Vedi anche