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 :

Que faire des index lors d'un changement de type d'une colonne ?


Sujet :

Administration SQL Server

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Que faire des index lors d'un changement de type d'une colonne ?
    Bonjour,

    Ce matin, je suis confronté au changement du type d'une colonne sur laquelle s'appuie plusieurs indexes.

    Cette colonne est actuellement en CHAR(16) et doit passer en CHAR(18).

    J'ai déjà créé une colonne temporaire et j'y ai placé toutes les données que l'ancienne colonne contient.

    Je veux donc maintenant la supprimer pour la recréer avec le bon type mais du fait des indexes, je ne peux pas.

    Je sais bien que je pourrais supprimer les indexes pour les recréer ensuite mais cette opération (la recréation pour être précis) va prendre pas mal de temps.

    Est-ce que je peux les désactiver et juste les réactiver après ? (j'imagine que je devrai tout de même faire un rebuild ou quelque chose du genre...)

    Y a-t-il une autre solution qui serait moins consommatrice en temps de traitement ?

    La table est-elle verrouillée le temps qu'un index se construise ?

    Merci d'avance pour vos réponses.
    Kropernic

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Tu vas être obligé de supprimer ton ou tes index qui dépendent de ta colonne. La désactivation d'un index ne te sera pas bénéfique ici car seule la structure d'index sera supprimée mais la définition sera toujours présente ... donc tu ne pourras toujours pas modifier ton type de colonne.

    ++

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bonjour,

    C'est ce que j'ai fini par faire en effet.

    J'en déduis donc qu'il n'y a pas de moyen détourner de faire cela sans les supprimer et recréer.

    Merci pour la clarification.
    Kropernic

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

Discussions similaires

  1. Problème de volumétrie : Changement de type d'une colonne
    Par Toinou03 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/07/2012, 23h14

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