Share via


Stili di ordinamento delle regole di confronto di Windows

Durante l'installazione di SQL Server verrà richiesto di scegliere tra regole di confronto di Windows o regole di confronto binarie. La scelta del tipo di regole di confronto influisce sul tipo di confronto e di ordinamento dei dati dell'istanza di MicrosoftSQL Server. In questo argomento vengono illustrati alcuni aspetti da considerare per la scelta delle regole di confronto di Microsoft o delle regole di confronto binarie per l'implementazione di SQL Server.

[!NOTA]

Per le regole di confronto di Windows, i tipi di dati Unicode nchar, nvarchar e ntext hanno lo stesso tipo di ordinamento dei dati non Unicode, ad esempio char, varchar e text.

Le regole di confronto di Windows definiscono i criteri per l'archiviazione dei dati di tipo carattere in base alle impostazioni locali di Windows associate. Le regole di confronto di Windows di base specificano quale alfabeto o lingua utilizzare quando viene applicato l'ordinamento del dizionario oltre alla tabella codici utilizzata per l'archiviazione di dati di tipo carattere non Unicode. Le regole di confronto binarie ordinano i dati in base alla sequenza dei valori codificati definiti dalle impostazioni locali e dal tipo di dati. In SQL Server le regole di confronto binarie definiscono le impostazioni locali e la tabella codici ANSI da utilizzare, applicando un ordinamento binario. Le regole di confronto binarie sono utili per ottenere una migliore prestazione dell'applicazione grazie alla loro semplicità relativa. Per i tipi di dati non Unicode il confronto dei dati è basato sui punti di codice definiti nella tabella codici ANSI. Per i tipi di dati Unicode il confronto dei dati è basato sui punti di codice Unicode. Per le regole di confronto binarie relative a tipi di dati Unicode, nell'ordinamento dei dati non vengono considerate le impostazioni locali. Ad esempio, se Latin_1_General_BIN e Japanese_BIN vengono utilizzati con dati Unicode restituiscono risultati di ordinamento identici.

In SQL Server le precedenti regole di confronto binarie eseguono per i dati Unicode un confronto incompleto di punto codice a punto codice, ovvero le precedenti versioni delle regole di confronto binarie di SQL Server eseguono il confronto del primo carattere come WCHAR e quindi un confronto byte per byte. Per motivi di compatibilità con le versioni precedenti, la semantica delle regole di confronto binarie esistenti non verrà modificata.

Le regole di confronto binarie di questa versione di SQL Server includono inoltre un set di regole per il confronto dei soli punti di codice. Gli utenti possono scegliere di eseguire la migrazione alle regole di confronto binarie per sfruttare i vantaggi offerti da confronti completi dei punti di codice. È consigliabile utilizzare le regole di confronto binarie per lo sviluppo di nuove applicazioni. Il suffisso BIN2 identifica i nomi delle regole di confronto che implementano la semantica delle regole di confronto dei punti di codice. Per il nuovo ordinamento binario è disponibile inoltre un flag di confronto che corrisponde a BIN2. Per ulteriori informazioni, vedere Linee guida per l'utilizzo di regole di confronto BIN e BIN2.

Nella tabella seguente vengono descritte le opzioni di ordinamento delle regole di confronto di Windows per SQL Server.

Ordinamento (suffisso)

Descrizione dell'ordinamento

Binario (_BIN)1

Ordina e confronta i dati nelle tabelle di SQL Server che si basano sugli schemi di bit definiti per ogni carattere. L'ordinamento binario supporta la distinzione tra maiuscole e minuscole e tra caratteri accentati e non accentati È l'ordinamento più rapido. Per ulteriori informazioni, vedere Linee guida per l'utilizzo di regole di confronto BIN e BIN2.

Se questa opzione non viene selezionata, SQL Server segue le regole di ordinamento e confronto definite nei dizionari per le lingue o gli alfabeti associati.

Punto di codice binario (_BIN2)1

Ordina e confronta i dati nelle tabelle di SQL Server che si basano sui punti di codice Unicode per i dati Unicode. Per i dati non Unicode, il punto di codice binario utilizzerà confronti identici agli ordinamenti binari.

Il vantaggio di utilizzare un ordinamento con punto di codice binario è rappresentato dal fatto che non è necessario alcun riordinamento dei dati nelle applicazioni che confrontano i dati ordinati di SQL Server. Di conseguenza, l'ordinamento con punto di codice binario consente di semplificare lo sviluppo di applicazioni e di ottenere un possibile aumento delle prestazioni. Per ulteriori informazioni, vedere Linee guida per l'utilizzo di regole di confronto BIN e BIN2.

Distinzione maiuscole/minuscole (_CS)

Distingue tra lettere maiuscole e minuscole. Se viene selezionata questa opzione, le lettere minuscole vengono ordinate per prime rispetto ai corrispettivi maiuscoli.

Se non viene selezionata questa opzione, in SQL Server non viene applicata alcuna distinzione e le lettere maiuscole e minuscole vengono considerate identiche ai fini dell'ordinamento.

Distinzione caratteri accentati/non accentati (_AS)

Distingue tra caratteri accentati e non accentati. Il carattere 'a' non viene ad esempio considerato uguale ad 'ấ'.

Se non viene selezionata questa opzione, in SQL Server non viene applicata alcuna distinzione e le lettere con caratteri accentati e non accentati vengono considerate identiche ai fini dell'ordinamento.

Distinzione Kana (_KS)

Opera una distinzione tra i due tipi di caratteri Kana giapponesi: Hiragana e Katakana.

Se non viene selezionata questa opzione, in SQL Server i caratteri Hiragana e Katakana vengono considerati identici ai fini dell'ordinamento.

Distinzione larghezza (_WS)

Opera una distinzione tra un carattere a un byte e lo stesso carattere rappresentato come carattere a byte doppio.

Se non viene selezionata questa opzione, in SQL Server le rappresentazioni a un byte e a byte doppio dello stesso carattere vengono considerate identiche ai fini dell'ordinamento.

1 Se si seleziona questa opzione, le opzioni Distinzione maiuscole/minuscole, Distinzione caratteri accentati/non accentati, Distinzione Kana e Distinzione larghezza non saranno disponibili.

Esempi di regole di confronto di Windows

Le regole di confronto di Windows sono costituite da una serie di suffissi che definiscono la distinzione tra maiuscole e minuscole, tra caratteri accentati e non accentati, la distinzione della larghezza o dei caratteri Kana. Negli esempi seguenti vengono descritti i tipi di ordinamento delle varie combinazioni di suffissi.

Suffisso delle regole di confronto di Windows

Descrizione dell'ordinamento

_BIN1

Ordinamento binario.

_BIN21

Ordinamento con punto di codice binario.

_CI_AI

Senza distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, senza distinzione di larghezza.

_CI_AI_KS

Senza distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, senza distinzione di larghezza.

_CI_AI_KS_WS

Senza distinzione tra lettere maiuscole e minuscole , senza distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, con distinzione di larghezza.

_CI_AI_WS

Senza distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, con distinzione di larghezza.

_CI_AS

Senza distinzione tra lettere maiuscole e minuscole, con distinzione dei caratteri accentati e non accentati, senza distinzione dei caratteri Kana, senza distinzione di larghezza.

_CI_AS_KS

Senza distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, senza distinzione di larghezza.

_CI_AS_KS_WS

Senza distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, con distinzione di larghezza.

_CI_AS_WS

Senza distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, con distinzione di larghezza.

_CS_AI

Con distinzione tra lettere maiuscole e minuscole, senza distinzione dei caratteri accentati e non accentati, senza distinzione dei caratteri Kana, senza distinzione di larghezza.

_CS_AI_KS

Con distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, senza distinzione di larghezza.

_CS_AI_KS_WS

Con distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, con distinzione di larghezza.

_CS_AI_WS

Con distinzione tra lettere maiuscole e minuscole, senza distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, con distinzione di larghezza.

_CS_AS

Con distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, senza distinzione di larghezza.

_CS_AS_KS

Con distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, senza distinzione di larghezza.

_CS_AS_KS_WS

Con distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, con distinzione dei caratteri Kana, con distinzione di larghezza.

_CS_AS_WS

Con distinzione tra lettere maiuscole e minuscole, con distinzione tra caratteri accentati e non accentati, senza distinzione dei caratteri Kana, con distinzione di larghezza.

1 Se si seleziona BIN o punto di codice binario, le opzioni Distinzione maiuscole/minuscole, Distinzione caratteri accentati/non accentati, Distinzione Kana e Distinzione larghezza non saranno disponibili.