DUVIDA DE SQL SERVER

LUIS.HERRERA 28/01/2012 12:40:51
#393979
Boa tarde amigos.

Tenho as seguintes dúvidas que ainda não consegui resposta na Web.

1- Qual o collation ideal para um software em português-BR o Latin1_General_CI_AI ou Latin1_General_CI_AS ?
Levando em conta o problema de escrita tando das Queries como os dados de pesquisa.

2- Tendo um software desenvolvido para diversas empresas, onde cada uma pode ter um Collation diferente no seu Servidor SQL, como resolver isso em nosso aplicativo / banco para evitar problemas de instalação e utilização?

3- Vou desenvolver o banco com o SQL Server 2005 Express. Ao distribuir o banco ou o script de sua criação no cliente, há algum problema se o Servidor do cliente for diferente do Express 2005? Digo tanto de versão 2005/2008 ou se é ou não Express?

4- Há diferença na string de conexão entre as diferentes versões de servidores SQL (Express ou não), 2005, 2008, etc...?

Obrigado a quem puder responder.

Bom final de semana.
LUIS.HERRERA 01/02/2012 10:49:57
#394030
Ninguém.....?
FFCOUTO 06/02/2012 20:50:04
#394103
Resposta escolhida
LUIS,

Vou tentar te ajudar em algumas questões que eu tenho conhecimento de causa

1. Latin1_General_CI_AS (Latin1 Geral Case Insensitive Acento Sensitive), ou seja, na hora de pesquisar A = a mas á <> a, veja que ele vai diferenciar palavras acentuadas.

2. Você define o Collation no banco, nas tabelas e nos campos na hora de criá-los

3. Creio que você não terá problemas compatibilidade de scripts. Use a seguinte regra Express > 2005 > 2008. Ou seja, o que for criado no Express vai ser compatível com as outras versões. Já com o 2008 pode ter algum recurso novo que não tem compatibilidade nas versões anteriores.

4. Creio que não. Use o site ConnectionStrings.com lá tem vários tipos de conexão.

Espero ter ajudado.
LUIS.HERRERA 07/02/2012 08:33:53
#394121
FFCouto bom dia.
Bem não é bem isso que eu perguntei nas duas primeiras perguntas, veja:

1) sei o significado da siglas CI e AS, o que queria saber é qual a ideal, usar AS ou AI pois numa pesquisa é ideal procurar nomes com e sem o acento ou exatamente como foram gravados?
Pergunto porque se alguém cadastra errado (digamos tem acento e não colocou ou vice-versa), então o registro não seria encontrado ou teria de pesquisar duas vezes. Particularmente acredito que o melhor seria CI e AI, por isso perguntei para saber o que o pessoal normalmente usa.

2) sei que eu defino os Collations nos 3 níveis, mas a pergunta foi sobre o banco que eu distribuo ex: Collation Latin1_General_CI_AI e o cliente que for usar o programa tem um Servidor SQL configurado com um collation para inglês por exemplo, isso traria problemas, uma vez que os campos não especificados gerariam erro por usar um collation do Servidor, pois é esse o procedimento, usar sempre o mais alto se não definido. Como acho que definir os collations em todos os campos de dezenas de tabelas não seja o comum, queria saber como resolver isso, ou será que tenho de definir o collation em todos os campos de todas as tabelas para evitar isso?

Obrigado pela atenção e ajuda.
FFCOUTO 09/02/2012 19:01:31
#394370
Luis,

1) Eu uso o AS. Se o usuário grava o nome com grafia errada e depois não acha na pesquisa eu oriento ao realizar a pesquisa usando parte do nome. Exemplo: Conceição: na pesquisa ficaria [ô]Concei%[ô]. Mas isso é um caso que você deverá estudar em seu sistema, em particular.

2) Obviamente vai dar um trabalho imenso setar os collations em todos os campos. Mas lembrando que se você definir o collation na base, as tabelas e os campos ao serem criados herdaram da base. Mesmo que o servidor tenha um collation em inglês, por exemplo, você seta o collation para Latin (que é o do nosso Português), tudo irá funcionar normalmente.

Desculpe pela demora.
LUIS.HERRERA 10/02/2012 07:54:10
#394383
Obrigado
Tópico encerrado , respostas não são mais permitidas