Condividi tramite


Utilizzo delle regole di confronto (SQL Server Compact)

Le regole di confronto consentono di specificare le modalità di ordinamento e di confronto delle stringhe di dati di tipo carattere in base alle norme di lingue e impostazioni locali particolari.

In SQL Server Compact è disponibile il supporto per le regole di confronto di Windows. Per un elenco di nomi di regole di confronto di Windows supportati in SQL Server Compact, vedere Regole di confronto supportate (SQL Server Compact).  

A partire dalla versione SQL Server Compact 3.5 Service Pack 1 (SP1), in SQL Server Compact sono supportate le regole di confronto con distinzione tra maiuscole e minuscole. La distinzione tra maiuscole e minuscole viene impostata a livello di database. In altre parole, tutte le colonne stringa (colonne di tipi di dati, nchar, nvarchar, e ntext) presenti nelle tabelle utente del database dispongono della stessa impostazione relativa alla distinzione tra maiuscole e minuscole specificata a livello di database. Tale impostazione viene applicata inoltre agli indici sulle colonne stringa.

In un database di SQL Server Compact, ai nomi degli oggetti, ad esempio i nomi delle tabelle, le parole chiave del linguaggio, le funzioni e le viste, non viene applicata la distinzione tra maiuscole e minuscole, anche se le regole di confronto rispettano tale distinzione. Sebbene questa caratteristica non sia coerente con SQL Server, tale comportamento corrisponde allo standard SQL in base al quale le regole di confronto di un database vengono utilizzate solo per confrontare i dati utente.

Connessione a database con distinzione tra maiuscole e minuscole

La connessione a qualsiasi database di SQL Server Compact con distinzione tra maiuscole e minuscole può essere eseguita in modo analogo a quella di qualsiasi altro database di SQL Server Compact.

A partire dalla versione SP1 di SQL Server Compact 3.5, in SQL Server Compact è disponibile il supporto per una nuova proprietà della stringa di connessione di tipo Boolean, ovvero "Case Sensitive" o "SSCE:Case Sensitive", che consente di determinare se le regole di confronto del database rispettano la distinzione tra maiuscole e minuscole. Se si tenta di stabilire una connessione a un database di SQL Server Compact esistente con la proprietà "Case Sensitive" nella stringa di connessione, in SQL Server Compact 3.5 SP1 tale impostazione viene ignorata. In altre parole, la proprietà "Case Sensitive" rappresenta un'opzione specificata al momento della creazione del database e viene ignorata in caso di connessione a un database esistente. Se la distinzione tra maiuscole e minuscole non viene specificata durante la creazione del database, per impostazione predefinita viene creato un database che non rispetta tale distinzione.

La proprietà Case Sensitive è una nuova caratteristica di SQL Server Compact 3.5 SP1 e non è supportata in nessuna versione precedente.

Creazione di database con distinzione tra maiuscole e minuscole

In SQL Server Compact, la specifica delle regole di confronto con distinzione tra maiuscole e minuscole per i nuovi database è supportata solo tramite le chiamate API. Questa caratteristica è supportata solo in SQL Server Compact 3.5 SP1 e versioni successive.

È possibile utilizzare la nuova proprietà della stringa di connessione di tipo Boolean, ovvero "Case Sensitive" o "SSCE:Case Sensitive", che consente di determinare se le regole di confronto del database rispettano la distinzione tra maiuscole e minuscole. Per la programmazione nativa, nel set di proprietà DBPROPSET_SSCE_DBINIT è disponibile una nuova proprietà DBPROP_SSCE_DBCASESENSITIVE che consente di determinare se le regole di confronto del database rispettano la distinzione tra maiuscole e minuscole.

Quando si imposta la proprietà Case Sensitive su true, gli indici sulle colonne stringa vengono ricompilati nel database.

Inoltre è possibile specificare le regole di confronto per un nuovo database tramite la clausola COLLATE (SQL Server Compact) dell'istruzione CREATE DATABASE (SQL Server Compact). Tuttavia, in questo caso, l'unica opzione supportata è quella relativa all'assenza della distinzione tra maiuscole e minuscole (CI, Case-Insensitive).

Importante

Se si crea un database con regole di confronto con distinzione tra maiuscole e minuscole, tale database non può essere aperto in nessuna versione precedente di SQL Server Compact, incluso SQL Server Compact 3.5.

Replica di tipo merge e regole di confronto con distinzione tra maiuscole e minuscole

Nei server di pubblicazione SQL Server e nei Sottoscrittori SQL Server Compact è supportata la replica di tipo merge indipendentemente dalle impostazioni relative alla distinzione tra maiuscole e minuscole. Per supportare la compatibilità con le versioni precedenti, non viene bloccato alcuno scenario in modo esplicito.

Nella versione SP1 di SQL Server Compact 3.5 è supportata la replica di database di SQL Server Compact con distinzione tra maiuscole e minuscole a database del server che rispettano o meno la distinzione tra maiuscole e minuscole. Nella tabella seguente vengono descritti tutti gli scenari possibili.

Distinzione tra maiuscole e minuscole nel database client di SQL Server Compact

Distinzione tra maiuscole e minuscole nel database di SQL Server

Supporto

Senza distinzione tra maiuscole e minuscole

Senza distinzione tra maiuscole e minuscole

Senza distinzione tra maiuscole e minuscole

Con distinzione tra maiuscole e minuscole

Con distinzione tra maiuscole e minuscole

Con distinzione tra maiuscole e minuscole

Con distinzione tra maiuscole e minuscole

Senza distinzione tra maiuscole e minuscole

Per ulteriori informazioni sulla replica di tipo merge, vedere Utilizzo della replica di tipo merge. Per ulteriori informazioni sulla creazione di un database con distinzione tra maiuscole e minuscole tramite l'oggetto Replication, vedere Procedura: Creazione di un database tramite l'oggetto Replication (a livello di programmazione).

Vedere anche

Altre risorse

Considerazioni sulle funzionalità internazionali (SQL Server Compact)