dans notre filiale chinoise, SQL server (version US
install=E9e sur un windows US) a pour collation par d=E9faut
une collation de type chinoise. Or cela pose des probl=E8mes
avec la base qui a =E9t=E9 restaur=E9e l=E0-bas.
Sur certaines requ=EAtes on obtient des messages "Cannot
resolve collation conflict for equal to operation."
Questions : est-il possible de changer la collation par
d=E9faut du serveur (et d'en faire h=E9riter les bases
existantes) ?
Sinon est-ce qu'un ALTER DATABASE avec option COLLATE
pourrait suffir pour tout "remettre dans l'ordre" ?
Et sinon quelles solution sont possibles ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent
Bonjour,
Le problème est du à une requete effectuant une jointure sur des types textes avec des collation différentes. Pour répondre à ta question, il n'est pas possible de changer le collate au niveau serveur, à moins de réinstaller l'instance sQL.
En revanche plusieurs possibilités : -1) Recréer une base avec le collate voulu, passer un script de création des tables avec le bon collate, et importer les données. -2) Passer un script sur la base en question pour y remetter le colltate voulu, attention, le collate va jusqu'au niveau colonne, donc il faut le changer pour la table (pour les futures modifications) et au niveau colonne. -3) Si il n'y a pas beaucoup de requetes incriminiées, il est également possible de forcer le collate à utiliser lors de l'execution des requetes. Bonne journée.
"David T" a écrit :
Bonjour,
dans notre filiale chinoise, SQL server (version US installée sur un windows US) a pour collation par défaut une collation de type chinoise. Or cela pose des problèmes avec la base qui a été restaurée là-bas. Sur certaines requêtes on obtient des messages "Cannot resolve collation conflict for equal to operation."
Questions : est-il possible de changer la collation par défaut du serveur (et d'en faire hériter les bases existantes) ? Sinon est-ce qu'un ALTER DATABASE avec option COLLATE pourrait suffir pour tout "remettre dans l'ordre" ? Et sinon quelles solution sont possibles ?
Merci bien de vos conseils.
David
Bonjour,
Le problème est du à une requete effectuant une jointure sur des types
textes avec des collation différentes.
Pour répondre à ta question, il n'est pas possible de changer le collate au
niveau serveur, à moins de réinstaller l'instance sQL.
En revanche plusieurs possibilités :
-1) Recréer une base avec le collate voulu, passer un script de création des
tables avec le bon collate, et importer les données.
-2) Passer un script sur la base en question pour y remetter le colltate
voulu, attention, le collate va jusqu'au niveau colonne, donc il faut le
changer pour la table (pour les futures modifications) et au niveau colonne.
-3) Si il n'y a pas beaucoup de requetes incriminiées, il est également
possible de forcer le collate à utiliser lors de l'execution des requetes.
Bonne journée.
"David T" a écrit :
Bonjour,
dans notre filiale chinoise, SQL server (version US
installée sur un windows US) a pour collation par défaut
une collation de type chinoise. Or cela pose des problèmes
avec la base qui a été restaurée là-bas.
Sur certaines requêtes on obtient des messages "Cannot
resolve collation conflict for equal to operation."
Questions : est-il possible de changer la collation par
défaut du serveur (et d'en faire hériter les bases
existantes) ?
Sinon est-ce qu'un ALTER DATABASE avec option COLLATE
pourrait suffir pour tout "remettre dans l'ordre" ?
Et sinon quelles solution sont possibles ?
Le problème est du à une requete effectuant une jointure sur des types textes avec des collation différentes. Pour répondre à ta question, il n'est pas possible de changer le collate au niveau serveur, à moins de réinstaller l'instance sQL.
En revanche plusieurs possibilités : -1) Recréer une base avec le collate voulu, passer un script de création des tables avec le bon collate, et importer les données. -2) Passer un script sur la base en question pour y remetter le colltate voulu, attention, le collate va jusqu'au niveau colonne, donc il faut le changer pour la table (pour les futures modifications) et au niveau colonne. -3) Si il n'y a pas beaucoup de requetes incriminiées, il est également possible de forcer le collate à utiliser lors de l'execution des requetes. Bonne journée.
"David T" a écrit :
Bonjour,
dans notre filiale chinoise, SQL server (version US installée sur un windows US) a pour collation par défaut une collation de type chinoise. Or cela pose des problèmes avec la base qui a été restaurée là-bas. Sur certaines requêtes on obtient des messages "Cannot resolve collation conflict for equal to operation."
Questions : est-il possible de changer la collation par défaut du serveur (et d'en faire hériter les bases existantes) ? Sinon est-ce qu'un ALTER DATABASE avec option COLLATE pourrait suffir pour tout "remettre dans l'ordre" ? Et sinon quelles solution sont possibles ?