Précédent   Forum du club des développeurs et IT Pro > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 11h22   #1
Kropernic
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur / DBA
Inscription : juillet 2006
Messages : 1 935
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : juillet 2006
Messages : 1 935
Points : 1 470
Points : 1 470
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 (anciennement Griftou).
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 11h18   #2
mikedavem
Expert Confirmé Sénior

 
Avatar de mikedavem
 
Homme David BARBARIN
Inscription : août 2005
Messages : 4 143
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 4 143
Points : 8 381
Points : 8 381
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.

++
__________________
Blog | Articles SQL Server | Profil MVP
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/12/2012, 11h24   #3
Kropernic
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur / DBA
Inscription : juillet 2006
Messages : 1 935
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : juillet 2006
Messages : 1 935
Points : 1 470
Points : 1 470
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 (anciennement Griftou).
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h58.


 
 
 
 
Partenaires

Hébergement Web