Merci pour votre réponse.

Envoyé par
elsuket
Bonjour,
Il vous "suffit" d'ajouter le nom de la collation à utiliser avec la clause COLLATE :
1 2 3 4
| CREATE TABLE #TOTO
(
nomToto VARCHAR(50) COLLATE maCollation
) |
J'ai lu qu'il faut ajouter COLLATE pour chaque colonne caractère. N'y a-t-il pas moyen de définir une collation pour toute la table?

Envoyé par
elsuket
Supposons que nous avons une table A avec une colonne nomA dont la collation est collationA, et une table B vec une colonne nomB dont la collation est collationB.
Nous souhaitons réaliser une comparaison :
1 2 3
| SELECT A.nomA
FROM dbo.A AS A
JOIN dbo.B AS B ON A.nomA = B.nomB COLLATE collationA |
Et est ce qu'on peut également faire ça?
JOIN dbo.B AS B ON A.nomA = B.nomB COLLATE collationC
Je pense à ça par exemple si on veut comparer certaines chaines avec une collation binaire (égalité stricte). Cela n'améliorerait-il pas les perfs?

Envoyé par
elsuket
Pour votre question 3, à part résoudre cela dans du code T-SQL, je ne vois pas comment faire
@++

Je vais regarder dans le profiler le code T-SQL qui est généré. Mais je ne comprends pas du tout pourquoi cette erreur est survenue puisque les tables interrogées sont système et donc la collation doit être la même pour toutes ?!
Ensuite comment connaitre la collations de la table (des collonnes)? Le script de création qui est généré par le Management Studio ne précise pas les collations.
Partager