Nome regole di confronto di Windows (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Specifica il nome delle regole di confronto di Windows nella COLLATE
clausola in SQL Server. Il nome delle regole di confronto Windows è composto dalla designazione delle regole di confronto e dagli stili di confronto.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>
<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }
Argomenti
CollationDesignator
Specifica le regole alla base delle regole di confronto Windows, Le regole di confronto di base riguardano:
- 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.
Alcuni esempi sono:
Latin1_General
oFrench
: entrambi usano la tabella1252
codici .Turkish
: usa la tabella1254
codici .
CaseSensitivity
CI
specifica la distinzione tra maiuscole e minuscole, CS
specifica la distinzione tra maiuscole e minuscole.
AccentSensitivity
AI
specifica la distinzione tra caratteri accentati e non accentati e AS
non accentati.
KanatypeSensitive
L'omissione di questa opzione specifica kanatype-insensitive, KS
specifica la distinzione kanatype.
WidthSensitivity
Se si omette questa opzione, viene specificata la distinzione di larghezza senza distinzione tra larghezza e WS
larghezza.
VariationSelectorSensitivity
Si applica a: SQL Server 2017 (14.x) e versioni successive
L'omissione di questa opzione specifica la distinzione del selettore di variante senza distinzione tra i selettori e VSS
la distinzione dei selettori di variazione.
UTF8
Si applica a: SQL Server 2019 (15.x) e versioni successive
Specifica la codifica UTF-8 da usare per i tipi di dati idonei. Per ulteriori informazioni, vedere Supporto per Unicode e regole di confronto.
{ BIN | BIN2 }
BIN
specifica l'ordinamento binario compatibile con le versioni precedenti da utilizzare.BIN2
specifica l'ordinamento binario che utilizza la semantica di confronto tra punti di codice.
Osservazioni:
A seconda della versione delle regole di confronto, alcuni punti di codice potrebbero non avere pesi di ordinamento o mapping maiuscoli/minuscoli definiti. Ad esempio, confrontare l'output della LOWER
funzione quando viene assegnato lo stesso carattere, ma in 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];
Il set di risultati è il seguente.
Nome colonna | Risultato |
---|---|
Uppercase |
Ǹ |
Lowercase |
ǹ |
La prima istruzione mostra sia le forme maiuscole che minuscole di questo carattere nelle regole di confronto precedenti (le regole di confronto non influiscono sulla disponibilità dei caratteri quando si usano dati Unicode).
SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];
Il set di risultati è il seguente.
Nome colonna | Risultato |
---|---|
Version80Collation |
Ǹ |
Version100Collation |
ǹ |
La seconda istruzione mostra che viene restituito un carattere maiuscolo quando le regole di confronto sono Latin1_General_CI_AS
, perché questo punto di codice non ha un mapping minuscolo definito nelle regole di confronto.
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 le regole di confronto di SQL Server possono generare piani di query diversi per la stessa query.
Esempi
La tabella seguente descrive alcuni esempi di nomi delle regole di confronto di Windows.
Regole di confronto | Descrizione |
---|---|
Latin1_General_100_CI_AS |
Le regole di confronto usano le regole di ordinamento del dizionario Latin1 General e esegue il mapping alla tabella 1252 codici . Si tratta di regole di confronto della versione _100 ed è senza distinzione tra maiuscole e minuscole (CI ) e distinzione tra caratteri accentati (AS ). |
Estonian_CS_AS |
Le regole di confronto usano le regole di ordinamento del dizionario estone ed esegue il mapping alla tabella 1257 codici . Si tratta di regole di confronto della versione _80 (implicite da nessun numero di versione nel nome) e fa distinzione tra maiuscole e minuscole (CS ) e distinzione tra caratteri accentati (AS ). |
Japanese_Bushu_Kakusu_140_BIN2 |
Le regole di confronto usano regole di ordinamento dei punti di codice binario ed esegue il mapping alla tabella 932 codici . Si tratta di regole di confronto della versione _140 e le regole di ordinamento del dizionario Giapponese Bushu Kakusu 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%';