Condividi tramite


Tipi di regole di confronto

In SQL Server sono disponibili due gruppi di regole di confronto, ovvero le regole di confronto di Windows e le regole di confronto di SQL Server.

Regole di confronto di Windows

Le regole di confronto di Windows sono definite per SQL Server per supportare le impostazioni locali del sistema Windows disponibili per il sistema operativo in cui sono installate le istanze di SQL Server. Per informazioni sul supporto delle nuove regole di confronto di Windows (regole di confronto basate sulle impostazioni locali del sistema Windows) aggiunte in SQL Server 2008 e su tutte le altre regole di confronto di Windows, vedere Windows_collation_name (Transact-SQL).

Se si specificano le regole di confronto di Windows per SQL Server, l'istanza di SQL Server utilizza le stesse tabelle codici e le stesse regole di ordinamento e di confronto di un'applicazione in esecuzione in un computer per il quale sono state specificate le impostazioni locali di Windows associate. Ad esempio, le regole di confronto relative al sistema Windows in francese per SQL Server corrispondono agli attributi delle regole di confronto delle impostazioni locali francesi per Windows.

Le impostazioni locali di Windows sono più numerose delle regole di confronto di Windows per SQL Server. I nomi delle impostazioni locali di Windows sono basati sulla lingua e il paese, ad esempio Francese (Canada). Tuttavia, molte lingue hanno alfabeto e regole di ordinamento e di confronto dei caratteri comuni. Ad esempio, numerose impostazioni locali di Windows, incluse tutte le impostazioni locali di Windows nelle lingue portoghese e inglese, utilizzano la tabella codici Latin1 (1252) e sono basate su un set comune di regole per l'ordinamento e il confronto di caratteri. Latin1_General, le regole di confronto di Windows supportate da SQL Server basate sulle regole di ordinamento e sulla tabella codici 1252, supporta tutte queste impostazioni locali di Windows.

Le impostazioni locali di Windows specificano inoltre attributi non inclusi nelle regole di confronto di Windows supportate da SQL Server, ad esempio i formati di valuta, data e ora. Poiché alcuni paesi, come il Regno Unito e gli Stati Uniti, utilizzano formati di valuta, data e ora diversi, richiedono impostazioni locali di Windows diverse. Non sono tuttavia necessarie regole di confronto SQL Server diverse, poiché l'alfabeto e i criteri di ordinamento e di confronto dei caratteri sono uguali. In SQL Server le regole di confronto di Windows sono combinate a una serie di suffissi che definiscono i criteri di ordinamento e confronto in base alla distinzione tra maiuscole e minuscole, caratteri accentati e non accentati, caratteri Kana e larghezza. Per ulteriori informazioni su tali suffissi, vedere Stili di ordinamento delle regole di confronto di Windows.

Regole di confronto di SQL Server

Le regole di confronto di SQL Server rappresentano un'opzione di compatibilità per stabilire una corrispondenza con le combinazioni comuni tra numero di tabella codici e tipi di ordinamento specificate nelle versioni precedenti di SQL Server. Molte di queste regole di confronto supportano, ma non sempre, suffissi per la distinzione tra maiuscole e minuscole, caratteri accentati e non accentati, caratteri Kana e larghezza. Per ulteriori informazioni, vedere Utilizzo di regole di confronto di SQL Server.

Tramite le regole di confronto di SQL Server vengono applicate le regole di ordinamento non Unicode ai dati non Unicode e le regole di ordinamento Unicode ai dati Unicode, utilizzando regole di confronto di Windows corrispondenti per i dati Unicode. Questa differenza può provocare risultati inconsistenti nei confronti degli stessi caratteri. Se, pertanto, nel database è presente una combinazione di colonne Unicode e non Unicode, tali colonne devono essere definite tramite le regole di confronto di Windows, affinché vengano utilizzati gli stessi criteri di ordinamento per i dati Unicode e non Unicode.

Per gestire la compatibilità con versioni precedente di SQL Server o con applicazioni sviluppate con regole di confronto di SQL Server in versioni precedente di SQL Server, in SQL Server sono disponibili le regole di confronto SQL_Latin1_General_CP1_CI_AS come regole di confronto predefinite per le installazioni server in computer che utilizzano le impostazioni locali del sistema Windows in lingua inglese (Stati Uniti).

Tra le regole di confronto Windows e di SQL Server possono essere presenti differenze nelle prestazioni. Per ulteriori informazioni, vedere Archiviazione di dati Unicode ed effetti sulle prestazioni.