IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Changer Database Collation


Sujet :

Administration SQL Server

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Changer Database Collation
    Bonjour

    Je viens de creer une nouvelle base de donnée sur mon serveur ai j'y ai migré quelques tables

    Maintenant quand j'essye de faire des jointure entre ces tables migrée et des table de la db Originale j'ai le message

    Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.
    Je comprends donc que je n'ai pas tenu compte de la Collation entre ces deux DB et j'ai modifié la colloation de la nouvelle DB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    USE [master];
    ALTER DATABASE geodata SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE geodata COLLATE SQL_Latin1_General_CP1_CI_AS;
    ALTER DATABASE geodata SET MULTI_USER WITH ROLLBACK IMMEDIATE;
    Mais j'ai toujours le problème
    Il apparait que je dois aussi changer la collation de chacune des tables

    Mes Questions :

    1- Est ce normal ?
    2- Quelle est mla difference entre ces deux Collations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SQL_Latin1_General_CP1_CI_AS" 
    "Latin1_General_CI_AS"
    3- Quelle est la plus "Standard"
    4- N'est il pas préférable d'utiliser AI (pour accent insensitive)

    Merci de votre aide
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2013
    Messages : 74
    Points : 160
    Points
    160
    Par défaut
    Bonjour,


    Citation Envoyé par olibara Voir le message
    1- Est ce normal ?
    Oui, c'est normal. La collation de la base est seulement la collation utilisée par défaut à la création d'objets (colonnes et variables) de type "chaines de caractères". Le fait de modifier la collation de la base n'a pas modifié la collation des colonnes existantes. Votre erreur persiste donc après modification.
    Pour résoudre le problème, il faut donc aussi modifier la collation de chaque colonne de type char et varchar des tables de votre base (la vue sys.columns vous donne la collation de chaque colonne de votre base).

    Citation Envoyé par olibara Voir le message
    2- Quelle est mla difference entre ces deux Collations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SQL_Latin1_General_CP1_CI_AS" 
    "Latin1_General_CI_AS"
    Le jeu de caractères SQL_Latin1_General n'est pas rigoureusement identique à Latin1_General. Même si la différence est très faible (quelques caractères de contrôle probablement), SQL Server refuse de comparer deux chaînes de caractères dans des collations différentes.
    Citation Envoyé par olibara Voir le message
    3- Quelle est la plus "Standard"
    Jusqu'en 2008R2, la collation par défaut à l'installation d'une instance SQL Server avec les binaires anglais était SQL_Latin1_General_CP1_CI_AS, et FRENCH_CI_AS pour les binaires français. Ces deux collations sont donc un peu plus "standard" que les autres puisqu'on les retrouve plus souvent. Mais certains softs (Sharepoint par exemple) forcent une collation différente pour leurs bases. Concrètement, lors de l'installation d'une instance, il est important de connaître la collation des bases qui seront hébergées, et de choisir cette même collation pour l'instance (qui sera donc la collation des objets des bases master, msdb, model et tempdb).

    Citation Envoyé par olibara Voir le message
    4- N'est il pas préférable d'utiliser AI (pour accent insensitive)
    Cela dépend complètement de ce que vous souhaitez faire lors des comparaisons de chaîne de caractères ! Si vous comptez stocker exclusivement des données en langue qui ne gère pas d'accents, autant choisir une collation AI. Mais dès que vous voulez stocker (et surtout comparer) des données avec des accents (entre autres pour toutes les langues latines), une collation AI va considérer comme similaires des chaînes de caractères qui ne le seront pas. C'est donc en sachant comment seront comparées les données hébergées que vous pourrez choisir une collation pertinente.


    Cordialement.

    Benjamin

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    magnifique et tres claire explication

    Merci Bvesan
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL 2008 R2: changer la collation
    Par guilld dans le forum Administration
    Réponses: 5
    Dernier message: 29/08/2012, 13h44
  2. [SQLSERVER2000] Changer la collation par défaut d'une base
    Par vmolines dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/12/2005, 15h22
  3. changer la collation (classement) de sql server 2000
    Par timsah dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2005, 12h03
  4. [IB6] Comment changer le Database Owner ?
    Par qi130 dans le forum Débuter
    Réponses: 5
    Dernier message: 29/03/2005, 21h07
  5. Redhat-9 changer le path des databases
    Par jean christophe dans le forum Installation
    Réponses: 7
    Dernier message: 30/05/2003, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo