2009-10-21 3 views
0

J'ai un conflit de classement dans une procédure stockée, je suis en train de courir pour l'envoyer en direct ... il a été expliqué iciCOLLATIONNEMENT Conflit pour le droit égal à l'opération Sql Server 2000

SQL Server 2000 DTS - Cannot resolve collation conflict for equal to operation

Y at-il un façon de résoudre le problème sans écrire le COLLATE database_default à côté de chaque problème est égal à la comparaison et faire une sorte de commande ou de paramètre global? Ou peut-être y a-t-il des options lors de la génération des scripts pour que les étiquettes de collation soient pré-faites?

Répondre

1

Il n'y a pas de commande/réglage global, j'en ai peur.

Si vous générez des scripts pour des objets à partir d'Enterprise Manager, il inclura automatiquement le classement des colonnes pour les colonnes individuelles qui sont probablement la cause de votre erreur. Vous pourriez alors peut-être faire une recherche/remplacement sur ceux-ci. Mais si vous exécutez simplement une requête joignant des données de deux bases de données avec des objets utilisant des classements différents, alors c'est plus compliqué. Y compris les tables temporaires pourrait même introduire une troisième collation dans le mélange.
Fondamentalement, l'option COLLATE database_default est la façon rapide de faire les choses. La façon lente est de tout mettre à jour pour avoir le même classement.

Ces deux articles contiennent de bonnes informations, notamment des instructions sur la façon de modifier les classements sur des objets existants.

Beware-of-Mixing-Collation-with-SQL-Server-2000---Part-1
Beware-of-Mixing-Collations-Part-2---Converting-Collations

Questions connexes