Trabajar con intercalaciones (SQL Server Compact)

Las intercalaciones especifican las reglas que determinan la forma en que las cadenas de caracteres se ordenan y comparan en función de las normas de cada idioma y configuración regional.

SQL Server Compact proporciona compatibilidad con las intercalaciones de Windows. Para ver una lista de los nombres de intercalaciones de Windows admitidos en SQL Server Compact, vea Intercalaciones admitidas (SQL Server Compact).  

A partir de la versión SQL Server Compact 3.5 Service Pack 1 (SP1), SQL Server Compact admite también las intercalaciones con distinción de mayúsculas y minúsculas. La distinción entre mayúsculas y minúsculas se establece en el nivel de la base de datos. En otras palabras, todas las columnas de cadena (columnas de tipos de datos, nchar, nvarchar y ntext) de las tablas de usuario de la base de datos tienen la misma configuración respecto a la distinción de mayúsculas y minúsculas que se especificó en el nivel de base de datos. Además, los índices de las columnas de cadena tienen la misma configuración de distinción de mayúsculas y minúsculas que se especificó en el nivel de base de datos.

Los nombres de objeto, como los nombres de tabla, las palabras clave del lenguaje, las funciones y las vistas, no se tratan como si distinguieran mayúsculas de minúsculas en una base de datos de SQL Server Compact, aun cuando la intercalación distinga mayúsculas de minúsculas. Esta característica no es coherente con SQL Server, pero este comportamiento es coherente con el estándar SQL que especifica que la intercalación de una base de datos solo se utiliza para las comparaciones de datos de usuario.

Conectar con bases de datos con distinción de mayúsculas y minúsculas

Puede conectarse a cualquier base de datos de SQL Server Compact con distinción de mayúsculas y minúsculas igual que se conecta a cualquier otra base de datos de SQL Server Compact.

Desde la versión SQL Server Compact 3.5 SP1, SQL Server Compact proporciona compatibilidad con una nueva propiedad de cadena de conexión Boolean, "Case Sensitive" o "SSCE:Case Sensitive", para determinar si la intercalación de bases de datos distingue o no mayúsculas de minúsculas. Si intenta conectarse a una base de datos existente de SQL Server Compact con una propiedad "Case Sensitive" en la cadena de conexión, SQL Server Compact 3.5 SP1 omite este valor. En otras palabras, esta propiedad es una opción en el momento de la creación de la base de datos y se omite en la conexión a una base de datos existente. Si no especifica la distinción de mayúsculas y minúsculas al crear una base de datos, de forma predeterminada se crea una base de datos sin distinción de mayúsculas y minúsculas.

La propiedad Case Sensitive es una característica nueva que se ha incorporado en SQL Server Compact 3.5 SP1 y no se admite en ninguna de las versiones anteriores.

Crear bases de datos con distinción de mayúsculas y minúsculas

SQL Server Compact permite especificar intercalaciones con distinción de mayúsculas y minúsculas para las nuevas bases de datos solo a través de llamadas a API. Esta característica solo se admite en SQL Server Compact 3.5 SP1 y versiones posteriores.

Puede usar la nueva propiedad de la cadena de conexión Boolean, "Case Sensitive" o "SSCE:Case Sensitive", para determinar si la intercalación de bases de datos distingue o no mayúsculas de minúsculas. En el caso de la programación nativa, una nueva propiedad DBPROP_SSCE_DBCASESENSITIVE, que forma parte del conjunto de propiedades DBPROPSET_SSCE_DBINIT, determina si la intercalación de bases de datos distingue o no mayúsculas de minúsculas.

Al establecer la propiedad en true, los índices de las columnas de cadena se recompilan en la base de datos.

También puede especificar la intercalación en una base de datos mediante la cláusula COLLATE (SQL Server Compact) de la instrucción CREATE DATABASE (SQL Server Compact). Sin embargo, en este caso, la opción sin distinción de mayúsculas y minúsculas (CI) es la única opción admitida.

Importante

Si crea una base de datos con una intercalación con distinción de mayúsculas y minúsculas, ninguna versión de SQL Server Compact anterior, incluida SQL Server Compact 3.5, puede abrir esa base de datos.

Replicación de mezcla e intercalaciones con distinción de mayúsculas y minúsculas

Los publicadores de SQL Server y los suscriptores de SQL Server Compact admiten la replicación de mezcla con independencia de la configuración de la distinción de mayúsculas y minúsculas. Para admitir la compatibilidad con las versiones anteriores, no se ha bloqueado explícitamente ningún escenario.

La versión SP1 de SQL Server Compact 3.5 admite la replicación de las bases de datos de SQL Server Compact con distinción de mayúsculas y minúsculas con las bases de datos de servidor tanto con distinción de mayúsculas y minúsculas como sin distinción. En la tabla siguiente se describen todos los escenarios posibles:

Distinción de mayúsculas y minúsculas de base de datos cliente de SQL Server Compact

Distinción de mayúsculas y minúsculas de base de datos de SQL Server

Se admite

CI (no distinguir mayúsculas de minúsculas)

CI

CI

CS (distinguir mayúsculas de minúsculas)

CS

CS

CS

CI

Para obtener más información acerca de la replicación de mezcla, vea Usar la replicación de mezcla. Para obtener más información sobre cómo crear una base de datos con distinción de mayúsculas y minúsculas utilizando el objeto Replication, vea Cómo crear una base de datos con el objeto Replication (mediante programación).

Vea también

Otros recursos

Consideraciones internacionales (SQL Server Compact)