Collation no SQL Server
em quais situações devemos utilizar collarion do SQL Server?
Mariana Carvalho
Curtidas 0
Respostas
Roniere Almeida
10/07/2013
Mariana, olhe este link
[url]http://dba-sqlserver.blogspot.com.br/2010/01/collate-collation-no-sqlserver.html[/url]
[url]http://dba-sqlserver.blogspot.com.br/2010/01/collate-collation-no-sqlserver.html[/url]
GOSTEI 0
Mariana Carvalho
10/07/2013
obrigada Roniere, mas queria informações com mais detalhes!!!
GOSTEI 0
Roniere Almeida
10/07/2013
sinceramente, não conheço muito sobre o assunto.
GOSTEI 0
Mariana Carvalho
10/07/2013
obrigada mesmo assim.
GOSTEI 0
Alex Lekao
10/07/2013
Ola Mariana, boa tarde!!!
Retornando devagar... rsrsr
o que vc precisa especificamente sobre o Collation?
se nao me engano o Collation determina o conjunto de caracteres que sera utilizado pelo banco de dados, por exemplo latino, americano etc.
eh utilizado para leitura ou identificacao, o termo exato nao to conseguindo achar agora... rsrsr, de caracteres especiais, como cedilha, til, etc.
se nao me engano tem um comando do sql, ou algo do tipo, que vc consegue ajustar o collaction no momento do select, collate acho que eh isso, pelo que dei uma pesquisada meio por cima... rsrsr
Ve direitinho qual eh a sua duvida e posta ai mais detalhes a respeito e a gente tenta ir resolvendo juntos. rsrsr
Abraco.
Alex - Lekao
Retornando devagar... rsrsr
o que vc precisa especificamente sobre o Collation?
se nao me engano o Collation determina o conjunto de caracteres que sera utilizado pelo banco de dados, por exemplo latino, americano etc.
eh utilizado para leitura ou identificacao, o termo exato nao to conseguindo achar agora... rsrsr, de caracteres especiais, como cedilha, til, etc.
se nao me engano tem um comando do sql, ou algo do tipo, que vc consegue ajustar o collaction no momento do select, collate acho que eh isso, pelo que dei uma pesquisada meio por cima... rsrsr
Ve direitinho qual eh a sua duvida e posta ai mais detalhes a respeito e a gente tenta ir resolvendo juntos. rsrsr
Abraco.
Alex - Lekao
GOSTEI 0
Mariana Carvalho
10/07/2013
queria saber se ele é utilizado na seguinte situação...o banco de dados seria de uma multinacional onde teríamos varias bases espalhadas por N paises, é nisso que o collation se encaixa ou não é isso?
GOSTEI 0
Alex Lekao
10/07/2013
sim tambem.
Ele pode ser aplicado a base em si ou em uma tabela por exemplo.
ela pode ser contornado usando o comando collate se nao me engano.
e tambem na collaction eh definido se vai ser canse sensitive ou nao, estas coisas.
mas as bases serao para o mesmo ERP? elas serao replicas uma da outra? se sim recomendaria usar as mesma collation para todas as bases e via programacao ou alguma function no banco para se evitar inserir algum caracter que nao seja da tabela de caracteres da collation.
da uma olhada nestes links para ver se ajuda um pouco mais sobre a collation.
http://msdn.microsoft.com/pt-br/library/ms184391.aspx
http://dba-sqlserver.blogspot.com.br/2010/01/collate-collation-no-sqlserver.html
http://gustavomaiaaguiar.wordpress.com/2008/10/12/como-resolver-problemas-relacionados-a-conflitos-de-collation/
espero ter ajudado.
Abraco.
Alex - Lekao
Ele pode ser aplicado a base em si ou em uma tabela por exemplo.
ela pode ser contornado usando o comando collate se nao me engano.
e tambem na collaction eh definido se vai ser canse sensitive ou nao, estas coisas.
mas as bases serao para o mesmo ERP? elas serao replicas uma da outra? se sim recomendaria usar as mesma collation para todas as bases e via programacao ou alguma function no banco para se evitar inserir algum caracter que nao seja da tabela de caracteres da collation.
da uma olhada nestes links para ver se ajuda um pouco mais sobre a collation.
http://msdn.microsoft.com/pt-br/library/ms184391.aspx
http://dba-sqlserver.blogspot.com.br/2010/01/collate-collation-no-sqlserver.html
http://gustavomaiaaguiar.wordpress.com/2008/10/12/como-resolver-problemas-relacionados-a-conflitos-de-collation/
espero ter ajudado.
Abraco.
Alex - Lekao
GOSTEI 0
Daniel Costa
10/07/2013
Eu tive que aprender meio que na marra pois trabalhava com Oracle na empresa anterior, então quero compartilhar algumas coisas que sofri pelo não conhecimento e tenho problemas até hoje.
Com relação à Collations.
Mesmo que sejam bases separadas, se em algum momento seja possível que você faça consultas relacionadas entre tabelas de collation diferente a consulta dará conflito, não se consegue fazer join entre collations diferentes, pelo menos nunca consegui, tenho muito problema com isso pois eu migrei um banco do Access pro SQL Server que eram 9 bases, e por não conhecer é difícil relacionar, e estou em um processo grande reformulação
Como a galera comentou o collation define quais caracteres são reconhecidos ou não...
Caso diferencie acento use um tipo com AS (acentue sensitive) caso não importe "í" ou "i" use AI(acentue insensitive)
Mesma coisa com a case (maiúscula e minúscula)
Lembrete:
Mesmo que no meio do caminho você troque o collation do banco de dados os objetos previamente criados não terão o collation trocado, e caso deseje que esse collation seja trocado de uma tabela por exemplo terá que recriá-la
Se liga também nos tipos de dados, se você poderá ter caracteres unicode, deverá usar NVarchar, Nchar etc, caso não precise de unicode, não role língua asiática não use nvarchar, nchar etc use varchar, char por questão de espaço de armazenamento , um campo nvarchar armazena o dobro - 2 em relação a um campo varchar
Duas páginas interessante no MSDN
http://msdn.microsoft.com/pt-br/library/ms143726.aspx
http://msdn.microsoft.com/pt-br/library/ms188046.aspx
Com relação à Collations.
Mesmo que sejam bases separadas, se em algum momento seja possível que você faça consultas relacionadas entre tabelas de collation diferente a consulta dará conflito, não se consegue fazer join entre collations diferentes, pelo menos nunca consegui, tenho muito problema com isso pois eu migrei um banco do Access pro SQL Server que eram 9 bases, e por não conhecer é difícil relacionar, e estou em um processo grande reformulação
Como a galera comentou o collation define quais caracteres são reconhecidos ou não...
Caso diferencie acento use um tipo com AS (acentue sensitive) caso não importe "í" ou "i" use AI(acentue insensitive)
Mesma coisa com a case (maiúscula e minúscula)
Lembrete:
Mesmo que no meio do caminho você troque o collation do banco de dados os objetos previamente criados não terão o collation trocado, e caso deseje que esse collation seja trocado de uma tabela por exemplo terá que recriá-la
Se liga também nos tipos de dados, se você poderá ter caracteres unicode, deverá usar NVarchar, Nchar etc, caso não precise de unicode, não role língua asiática não use nvarchar, nchar etc use varchar, char por questão de espaço de armazenamento , um campo nvarchar armazena o dobro - 2 em relação a um campo varchar
Duas páginas interessante no MSDN
http://msdn.microsoft.com/pt-br/library/ms143726.aspx
http://msdn.microsoft.com/pt-br/library/ms188046.aspx
GOSTEI 0
Mariana Carvalho
10/07/2013
Obrigada Alex.
GOSTEI 0
Mariana Carvalho
10/07/2013
Daniel, obrigada a vc por compartilhar experiencias e soluções!!!
GOSTEI 0
Alex Lekao
10/07/2013
Ola Mariana, disponha.
Desculpe a demora.
Obrigado Daniel por compartilhar, somou bastante ao post.
Abraco.
Alex - Lekao
Desculpe a demora.
Obrigado Daniel por compartilhar, somou bastante ao post.
Abraco.
Alex - Lekao
GOSTEI 0
Mariana Carvalho
10/07/2013
obrigada Alex, esse assunto acho ele meio escondido, as vezes evitado!!!
GOSTEI 0
Alex Lekao
10/07/2013
Das collations?
Acredito que no geral o pessoal nao sabe mesmo... rsrsr
mas eh meio evitado mesmo, eu sigo o padrao de nao utilizar nenhum tipo de acentuacao em hipotese nenhuma e recomendo aos desenvolvedores que tambem assim o facam.
acredito que assim conseguira evitar os "conflitos" com as collations.
Abraco.
Alex - Lekao
Acredito que no geral o pessoal nao sabe mesmo... rsrsr
mas eh meio evitado mesmo, eu sigo o padrao de nao utilizar nenhum tipo de acentuacao em hipotese nenhuma e recomendo aos desenvolvedores que tambem assim o facam.
acredito que assim conseguira evitar os "conflitos" com as collations.
Abraco.
Alex - Lekao
GOSTEI 0
Mariana Carvalho
10/07/2013
OK Alex.
GOSTEI 0
Alex Lekao
10/07/2013
mais um link
http://bobgalvao.wordpress.com/2013/08/27/alterar-collation-de-banco-de-dados-sql-server/?goback=%2Egde_1945724_member_268989830#%21
http://bobgalvao.wordpress.com/2013/08/27/alterar-collation-de-banco-de-dados-sql-server/?goback=%2Egde_1945724_member_268989830#%21
GOSTEI 0
Fabiano Carvalho
10/07/2013
É um assunto muito complexo!
Mas se tiver problemas com collation basta usar
ao lado da coluna. EX:
Select a,coluna collation database_default
from tabela1 as a
inner join tabela2 b
on a.coluna = b.coluna.
E a explicação basica é o que os companheiros informaram.
Abraços!
Mas se tiver problemas com collation basta usar
collate database_dafault
ao lado da coluna. EX:
Select a,coluna collation database_default
from tabela1 as a
inner join tabela2 b
on a.coluna = b.coluna.
E a explicação basica é o que os companheiros informaram.
Abraços!
GOSTEI 0
Mariana Carvalho
10/07/2013
mais um link
http://bobgalvao.wordpress.com/2013/08/27/alterar-collation-de-banco-de-dados-sql-server/?goback=%2Egde_1945724_member_268989830#%21
http://bobgalvao.wordpress.com/2013/08/27/alterar-collation-de-banco-de-dados-sql-server/?goback=%2Egde_1945724_member_268989830#%21
obrigada Alex.
GOSTEI 0
Mariana Carvalho
10/07/2013
Obrigada tambem Fabiano.
GOSTEI 0