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

MS SQL Server Discussion :

changer le type d'un clé primaire


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

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

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 8
    Points
    8
    Par défaut changer le type d'un clé primaire
    bonjour tout le monde, je veux changer le type d'un clé primaire de varchar a int j'ai chercher par tous mais toujours le même problème,
    j'utilise comme serveur sql Wamp server

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    D’abord, on ne dit pas "le type de la clé primaire" ! La clé primaire est avant tout une contrainte (l’unique contrainte de clé primaire pour une table).
    La clé primaire peut être composée d’une ou de plusieurs colonnes. Chacune des colonnes participant à la contrainte de clé primaire, (et également les autres colonnes ne participant pas à la clé primaire), est caractérisée par un type de données (VARCHAR, INT, DATETIME, etc..).

    Donc, je suppose que ta question concerne le type de données d’une colonne participant à la contrainte de clé primaire. (peut-être même, l’unique colonne de la clé primaire), que tu souhaites changer de VARCHAR en INT

    Généralement, pour modifier une contrainte de clé primaire (Primary key), il faut supprimer auparavant la contrainte de clé primaire existante, puis la créer à nouveau en précisant sa nouvelle définition.

    Pour répondre à ta question, je te propose de procéder ainsi :

    1 – Créer une nouvelle colonne de type INT (nommée par exemple NewID),
    2 – Copier les données de la colonne, de type VARCHA, constituant la clé primaire (OldID), tout en les transformant en INT, vers la nouvelle colonne NewID de type INT, et ce, en utilisant la fonction CAST : SET NewID = CAST(OldID AS INT),
    3 - Si la contrainte de clé primaire est référencée dans d’autres contraintes de clés étrangères (FK), il faudra, au préalable, dropper toutes autres clés étrangères (FK) référençant cette clé primaire,
    4 – Dropper la contrainte de clé primaire (PK_xxx),
    5 – S’assurer que les données copiées dans l’étape 2 sont OK, si c’est le cas, alors dropper l’ancienne colonne (OldID), de type VARCHAR, participant à l'ancienne clé primaire,
    6 – Renommer la colonne nouvellement créée (NewID de type INT) avec le nom de l’ancienne clé primaire (OldID),
    7 – Créer une nouvelle contrainte de clé primaire PK_xxx sur la colonne de type INT nouvellement créée et renommée (OldPK),
    8 – Modifier le type de données des colonnes, des autres tables, impliquées dans les contraintes FK, puis recréer à nouveau les contraintes FK.

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

Discussions similaires

  1. Comment changer le type d'un champ clé primaire ?
    Par laurent30s dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/12/2009, 19h05
  2. comment changer le type d'une relation ?
    Par mitapi dans le forum Access
    Réponses: 5
    Dernier message: 21/05/2007, 10h29
  3. Changer le type d'1 clé primaire à chaud
    Par magic charly dans le forum Oracle
    Réponses: 3
    Dernier message: 12/09/2006, 11h52
  4. [Débutant] Changer le type d'une colonne
    Par david71 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 08/11/2005, 11h26
  5. Changer el type d'une variable sql sous postgre8/admin
    Par smag dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 24/08/2005, 12h31

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