Condividi tramite


Nome delle 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 o French: entrambi usano la tabella 1252codici .
  • Turkish: usa la tabella 1254codici .

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];

Questo è il set di risultati.

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];

Questo è il set di risultati.

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 1252codici . 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 1257codici . 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 932codici . 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%';