12
votes

SQL Server 2008 Conflit de collation - Comment résoudre?

Pour simplification, POC, j'ai la requête suivante, à l'aide de colonnes typées de caractères: xxx pré>

et je reçois l'erreur suivante: p>

msg 468, niveau 16, état 9, ligne 2
Impossible de résoudre le conflit de collation entre "sql_latin1_génalal_cp1_ci_as" et "latin1_general_cs_as" dans l'opération Union. P> blockQuote>

ggi2014 code> a été créé avec une collation sql_latin1_general_cp1_ci_as code>. Cela a été modifié dans SMS et l'instance a été redémarré, également dans SMS. P>

Lorsque je regarde dans SMS, ainsi que la requête: P>

select name, collation_name from sys.databases


1 commentaires

Salut Marc_s. Pouvez-vous expliquer pourquoi vous avez édité mon post?


3 Réponses :


2
votes

Essayez celui-ci (peut-être que vos colonnes ont une assemblée différente) -

SELECT AH_NAME1 COLLATE database_default
FROM GGIMAIN.SYSADM.BW_AUFTR_KOPF

UNION

SELECT AH_NAME1 COLLATE database_default
FROM GGI2014.SYSADM.BW_AUFTR_KOPF


0 commentaires

17
votes
select AH_NAME1 COLLATE DATABASE_DEFAULT from GGIMAIN.SYSADM.BW_AUFTR_KOPF
union
select AH_NAME1 COLLATE DATABASE_DEFAULT from GGI2014.SYSADM.BW_AUFTR_KOPF
Unless I am mistaken, changing the collation of the database does not change the collation of the already existing objects. Only new objects will be affected

2 commentaires

Veuillez noter que s'il existe un mot clé dans l'instruction SELECT, la collecte entre avant.


@Stevetaylor merci beaucoup, ça m'a sauvé beaucoup



0
votes

I Ajouter une garantie pour chaque champ de la requête

SELECT Field1 collate default_database
,field2 collate default_database
,fieldn collate default_database
From DB1.dbo.table_x
UNION ALL
SELECT Field1 collate default_database
,field2 collate default_database
,fieldn collate default_database
From DB2.dbo.table_y


0 commentaires