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 Microsoft SQL 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 internazionali 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 internazionali e dal tipo di dati. In SQL Server una regola di confronto binaria definisce le impostazioni internazionali della lingua 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 internazionali. 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 nuovo set di regole per il confronto dei soli punti di codice.. Gli utenti possono scegliere di passare alle nuove regole di confronto binarie per usufruire dei confronti dei punti di codice che implementano la nuova semantica. In tal caso, sarà opportuno utilizzare le nuove regole di confronto binarie per lo sviluppo di nuove applicazioni. Il nuovo suffisso BIN2 identifica i nomi delle regole di confronto che implementano la nuova semantica di confronto dei punti di codice. È stato inoltre aggiunto un nuovo flag di confronto per il nuovo tipo di ordinamento binario che corrisponde a BIN2. Per ulteriori informazioni, vedere Utilizzo di regole di confronto binarie.

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

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 distingue tra maiuscole e minuscole e tra caratteri accentati e non accentati. È il tipo di ordinamento più rapido. Per ulteriori informazioni, vedere Utilizzo di regole di confronto binarie.

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 Utilizzo di regole di confronto binarie.

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

Ogni regola di confronto di Windows è costituita 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, nuovo in SQL Server 2005.

_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.

Vedere anche

Riferimento

Impostazioni delle regole di confronto durante l'installazione

Concetti

Utilizzo di regole di confronto binarie

Guida in linea e informazioni

Assistenza su SQL Server 2005