Problema SQL Collation

2 respostas
sqlserversql
G

Olá, estou tentando rodar uma consulta no sql com varias bases diferente, usando o codigo

select DATAXX_LOG, NUMSEQ_LOG, CODFNC_LOG, DADOSX_LOG, NOMUSU_LOG, HORAXX_LOG, CODIGO_LOG, STATUS_LOG, CODPES_LOG,
CODFNC_FNC, DESCRI_FNC, INDLOG_FNC, PRMLOG_FNC, DAHORA_FNC, 'MAGISTER’AS DB, substring (descri_fnc, 1,2) as modulo
from MAGISTER.dbo.ARQLOG INNER JOIN FUNCAO ON ARQLOG.CODFNC_LOG = FUNCAO.CODFNC_FNC WHERE DATAXX_LOG BETWEEN ‘2017-11-01’ AND ‘2018-12-31’

porém é mostrado o erro:

Cannot resolve the collation conflict between “Latin1_General_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation.

o que posso fazer ?

2 Respostas

J

Isso acontece quando há incompatibilidade de collations diferentes definidas nas tabelas.
Use a query abaixo para saber qual a collation está definida em cada coluna da(s) tabela(s):

SELECT
col.name, col.collation_name
FROM
sys.columns col
WHERE
object_id = OBJECT_ID(‘NomeDaSuaTabela’)

Collations são usadas para comparar strings. Portanto, procure nunca usar collations diferentes no seu BD, nem nas suas tabelas.

Depois de saber qual collation você vai usar, defina ela em todas as suas tabelas com a query abaixo (supondo que você irá usar Latin1_General_CI_AS) :

ALTER TABLE NomeDaSuaTabela
ALTER COLUMN ColunaCausadora
VARCHAR(100) COLLATE Latin1_General_CI_AS NOT NULL

Até mais.

J

Oi @Gabriel_Correia1.

Conseguiu resolver o seu problema? Deu certo a minha solução ?

Em caso afirmativo, não se esqueça, por gentileza, de ticar no rodapé da resposta Esta resposta resolve o problema e de editar o título do seu post colocando [RESOLVIDO] no início do título, ok ?

Até mais :wink:

Criado 15 de março de 2018
Ultima resposta 21 de mar. de 2018
Respostas 2
Participantes 2