Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wallcrawler

Como setar o COLLATE do SQL SERVER?

Recommended Posts

Olá pessoal, estou com uma dúvida:

 

Estou com problemas na consulta do sql server 2000 pois o mesmo não diferencia acentuação, cedilha e etc....

 

E uma das soluções encontradas é usar o COLLATE SQL_Latin1_General_CP1_CI_AI nas tabelas.

 

Mas como as tabelas estão em execução, uma mudança na estrutura do Banco é perigosa (até pq filiais da minha empresa em vários estados utilizam o sistema).

 

Pergunto: Tenho como definir o COLLATE do Banco quando da abertura do mesmo, sem ter que definir, consulta a consulta que COLLATE usar?

 

Wallcrawler. http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

COLLATE é uma propriedade do SQL SERVER que se refere ao tratamento dos dados que o SQL vai manipular.

 

É nele que dizemos se o SQL diferenciará maiúsculas de minúsculas (case-sensitive), acentuação (accent-sensitive)....

 

Com a definição padrão do SQL se fizermos uma consulta por "violao" em uma tabela, o SQL só nos trará os registros que possuírem "violao".

 

Com o COLLATE modificado para SQL_Latin1_General_CP1_CI_AI ele trará todos os registros que tiverem "violão","violao","Violäo","VIOLÃO", etc...

 

Ou seja para o SQL, a = ã, ä, A, á.... e vice versa.

 

Wallcrawler http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.Dá pra voce informar o COLLATE na própria consulta.Exemplo

Select 	ds_situacao Collate SQL_Latin1_General_CP1_CI_AI,	cd_situacaofrom tb_cds_situacao_sinistro where ds_situacao Collate SQL_Latin1_General_CP1_CI_AI like '%Acao%'

[/sql]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um sistema todo pronto e colocar o COLLATE em cada consulta ou modificar o default do banco, é muito trabalhoso / arriscado.

 

Sei que é possível selecionar o COLLATE quando da consulta. A minha dúvida é saber se tenho como definir isso ao me conectar com o Banco.

 

Tipo, na string de conexão, sei lá....

 

Algum de vcs passou por uma situação parecida com essa?

 

Wallcrawler http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, tem como faz um CAST de Collate para se usar na hora da consulta... diretamente na SQL..no Books Online do SQL Server procura por: Collate sqllogo no 1º topico tem vários exemplos.... e veja se te ajuda!!Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo:Para resolver o problema, teria que tomar uma das atitudes:1ª - Mandar atualizar o COLLATE da minha Base de Dados (o que meu server não aconselhou pois poderíamos ter perda de dados);2ª - Refazer as tabelas;3ª - Colocar em cada consulta o COLLATE especificado (o que imagine é muito trabalhoso);O que eu quero saber é se tenho como definir essa propriedade ao me conectar com o BAnco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara... não é possível...acho q você teria somente essas 3 opções mesmo.. pois isso aconteceu comigo há algum tempo... e tive q refazer as tabelas... com a collate q eu necessitava...mas no meu caso essa foi a melhor solução!Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites
ConnectionStrings Vá em SQLServer, Escolha "Read More" e clique em "All SqlConnection connectionstring properties". Irá listar todas as possíbilidades de propriedades a ser definidas durante a conexão. (lamento informar que não nada sobre COLLATE)

Compartilhar este post


Link para o post
Compartilhar em outros sites

WallCraller.Ocorre que o Colate não é uma propriedade do Banco, mas um atributo de cada campo de cada tabela do banco.Portanto, do jeito que voce quer não tem jeito.O que voce pode fazer é....Fazer um Backup do banco, alterar os Collates dele e testar, se der pau, volta o backup.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.