Trabalhando com agrupamentos (SQL Server Compact)
Os agrupamentos especificam as regras de como os dados de uma cadeia de caracteres são classificados e comparados, com base nas normas de determinados idiomas e localidades.
O SQL Server Compact dá suporte para agrupamentos do Windows. Para obter uma lista dos agrupamentos do Windows suportados no SQL Server Compact, consulte o Agrupamentos suportados (SQL Server Compact).
A partir da versão SQL Server Compact 3.5 Service Pack 1 (SP1), o SQL Server Compact dá suporte a agrupamentos com diferenciação de maiúsculas e minúsculas. A diferenciação de maiúsculas e minúsculas é definida em nível de banco de dados. Em outras palavras, todas as colunas de cadeia de caracteres (colunas de tipos de dados, nchar, nvarchar, e ntext) em tabelas de usuário no banco de dados têm as mesmas configurações de diferenciação de maiúsculas e minúsculas conforme especificado no nível de banco de dados. Além disso, os índices em colunas de cadeia de caracteres têm as mesmas configurações de diferenciação de maiúsculas e minúsculas que as especificadas no nível de banco de dados.
Não é feita a diferenciação de maiúsculas e minúsculas em nomes de objeto, como nomes de tabela, palavras-chave de idioma, funções e exibições, em um banco de dados do SQL Server Compact, mesmo quando o agrupamento diferencia maiúsculas de minúsculas. Esse recurso não é consistente com o SQL Server, mas esse comportamento é consistente com o padrão SQL que especifica que o agrupamento de um banco de dados é usado apenas para fins de comparação de dados de usuário.
Conectando a um banco de dados que diferencia maiúsculas de minúsculas
Você pode estabelecer conexão com qualquer banco de dados do SQL Server Compact que diferencia maiúsculas de minúsculas, da mesma forma que faria com qualquer outro banco de dados do SQL Server Compact.
A partir da versão SP1 do SQL Server Compact 3.5, o SQL Server Compact dá suporte a uma nova propriedade de cadeia de conexão Boolean, "Case Sensitive" ou "SSCE:Case Sensitive", a fim de determinar se o agrupamento de banco de dados fará ou não a diferenciação de maiúsculas e minúsculas. Se você tentar se conectar a um banco de dados existente do SQL Server Compact com a propriedade "Case Sensitive" na cadeia de conexão, o SQL Server Compact 3.5 SP1 irá ignorar essa definição. Em outras palavras, a propriedade "Case Sensitive" é uma opção do momento da criação do banco de dados e é ignorada durante a conexão a um banco de dados existente. Caso você não especifique essa propriedade ao criar um banco de dados, por padrão será criado um banco de dados que não faz a diferenciação de maiúsculas e minúsculas.
A propriedade "Case Sensitive" é um novo recurso apresentado no SQL Server Compact 3.5 SP1 e não tem suporte nas versões anteriores.
Criando bancos de dados que diferenciam maiúsculas de minúsculas
O SQL Server Compact dá suporte à especificação de agrupamentos que diferenciam maiúsculas de minúsculas em novos bancos de dados apenas por meio de chamadas de API. Esse recurso só tem suporte no SQL Server Compact 3.5 SP1 e em versões posteriores.
Você pode usar a nova propriedade de cadeia de conexão Boolean, "Case Sensitive" ou "SSCE:Case Sensitive", a fim de determinar se o agrupamento do banco de dados fará ou não a diferenciação de maiúsculas e minúsculas. Na programação nativa, uma nova propriedade DBPROP_SSCE_DBCASESENSITIVE, que faz parte do conjunto de propriedades DBPROPSET_SSCE_DBINIT, determina se o agrupamento do banco de dados fará ou não a diferenciação de maiúsculas e minúsculas.
Quando você define "Case Sensitive" como true, os índices nas colunas de cadeias de caracteres são recriados no banco de dados.
Você também pode especificar o agrupamento para um novo banco de dados com o uso da cláusula COLLATE (SQL Server Compact) da instrução CREATE DATABASE (SQL Server Compact). Contudo, nesse caso, a opção CI (não diferencia maiúsculas de minúsculas) é a única opção com suporte.
Importante
Se você criar um banco de dados com um agrupamento que diferencia maiúsculas de minúsculas, esse banco de dados não poderá ser aberto por nenhuma versão anterior do SQL Server Compact, inclusive SQL Server Compact 3.5.
Replicação de mesclagem e agrupamentos que diferenciam maiúsculas de minúsculas
Os publicadores do SQL Server e os assinantes do SQL Server Compact dão suporte à replicação de mesclagem independentemente das configurações de diferenciação de maiúsculas e minúsculas. A fim de dar suporte às versões anteriores, nenhum cenário é bloqueado explicitamente.
A versão SP1 do SQL Server Compact 3.5 permite a replicação de bancos de dados do SQL Server Compact que diferenciam maiúsculas de minúsculas em bancos de dados de servidor que diferenciam e não diferenciam maiúsculas de minúsculas. A seguinte tabela descreve todos os cenários possíveis:
Banco de dados cliente do SQL Server Compact que diferencia maiúsculas de minúsculas |
Banco de dados do SQL Server que diferencia maiúsculas de minúsculas |
Com suporte |
---|---|---|
CI (case-insensitive) |
CI |
Sim |
CI |
CS (case-sensitive) |
Sim |
CS |
CS |
Sim |
CS |
CI |
Sim |
Para obter mais informações sobre a replicação de mesclagem, consulte Usando a replicação de mesclagem. Para obter mais informações sobre como criar um banco de dados que diferencia maiúsculas de minúsculas usando o objeto Replication, consulte Como criar um banco de dados usando o objeto Replication (programaticamente).