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 :

Conversion de colonne en auto-increment


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut Conversion de colonne en auto-increment
    Bonjour,
    je travaille avec MSSQL server mais je galere pour trouver l'instruction sql qui me permet de :
    1) convertir une colonne existante d'une table en AUTO-increment ( type int)

    aussi :

    2) l'inverse on part d'une colonne en auto-increment qu'on veut convertir en colonne simple (clé primaire) sans auto-increment

    Merci de votre appui

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    pas étonnant que tu galères, ça n'existe pas. Fais-le avec Management Studio, ou en passant par une table temporaire à la main.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    C'est possible, lisez l'article aue j'ai ecrit a ce sujet :
    http://sqlpro.developpez.com/cours/s...partie2#L7.6.1

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut Merci
    Merci. cela me rasure que cela ne soit pas "possible". Donc faut passer par des tables temporaires.

    Par contre il est bien possible de changer le nom ou le type d'une colonne simple ?

    Exemple une colonne "Col" de type CHAR pourra etre changé en colonne "Nouv" de type INT" ?

    Avec :
    ALTER TABLE table
    { [ ALTER COLUMN nom_colonne nouveau_type ]
    | ADD
    { [ nom_colonne nouveau_type ]
    | nom_colonne AS expression_colonne_calculée
    } [ ,...n ]
    | [ WITH CHECK | WITH NOCHECK ] ADD
    { définition_contrainte } [ ,...n ]
    | DROP
    { [ CONSTRAINT ] nom_contrainte
    | COLUMN nom_colonne } [ ,...n ]
    | { CHECK | NOCHECK } CONSTRAINT
    { ALL | nom_contrainte [ ,...n ] }

  5. #5
    Expert confirmé
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Par défaut
    Citation Envoyé par mmsow
    2) l'inverse on part d'une colonne en auto-increment qu'on veut convertir en colonne simple (clé primaire) sans auto-increment
    J'avais mis la main sur un algo que j'ai adapté à l'époque en Delphi, tu peux l'adapter en T-SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure ConversionGUIDversVarchar;
    var Tab : array [ 1..16] of string;
    i : integer;    dep: string;
     
     
    // la lecture du champ Guid ne fonctionne pas
    // avec les TTable mais fonctionne avec les TQuery
     
     
    begin
      if  ((tvardata(query1.Fields[0].asvariant).vtype and vararray)=vararray) then
       begin
         dep:=query1.Fields[0].AsString;
         Edit1.text:=dep;
         memo2.clear;
         for i := 1 to 16 do Tab[i] := inttohex( ord(dep[i]),2);
     
         memo2.seltext:=
         '{'
         +Tab[4]+Tab[3]+Tab[2]+Tab[1]
         +'-'
         +Tab[6]+Tab[5]
         +'-'
         +Tab[8]+Tab[7]
         +'-'
         +Tab[9]+Tab[10]
         +'-'
         +Tab[11]+Tab[12]+Tab[13]+Tab[14]+Tab[15]+Tab[16]
         +'}';
      end;
    end;
    Donc faudrait faire une nouvelle colonne en varchar, l'updater avec l'algo, et créer la clé primaire sur cette nouvelle colonne.

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut
    OK merci beaucoup

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

Discussions similaires

  1. colonne en auto-increment sans trigger ?
    Par doc malkovich dans le forum SQL
    Réponses: 1
    Dernier message: 27/05/2010, 10h33
  2. colonne auto incremental sur sharepoint
    Par hbennou dans le forum SharePoint
    Réponses: 5
    Dernier message: 04/05/2008, 20h20
  3. Réponses: 8
    Dernier message: 06/12/2005, 11h33
  4. colonnes de type auto incremental
    Par Bill_Baroud dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/12/2004, 12h28
  5. COLONNE AUTO INCREMENTE
    Par kanzarih dans le forum Débuter
    Réponses: 2
    Dernier message: 12/10/2004, 10h36

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