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 :

[DEBUTANT]modifier pour devenir incrémentant


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 213
    Points : 102
    Points
    102
    Par défaut [DEBUTANT]modifier pour devenir incrémentant
    Salut à tous, j'ai un petit problème avec un de mes champs dans une de mes tables, j'aimerai le rendre auto-increment, mais je ne trouve pas le code SQL pour le faire.

    Je suis passer par un alter table mais j'ai du me tromper dans la syntaxe.

    Vous serait-il possible de m'aider.

    D'avancer merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Vous êtes sûr que cette colonne n'est pas "clé étangère" dans une autre table ?

    Renommez le champ
    Ajoutez une nouvelle colonne auto
    Après validation, supprimez l'ancienne colonne
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 213
    Points : 102
    Points
    102
    Par défaut
    En réalité, c'est une erreur de création au départ, mon champ doit-être en autoincrémentant et n'est pas une clé étrangère.

    Seulement je dois le faire en fesant un script SQL.

    Encore merci pour votre aide

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Vous devez passer par une migration de données, comme je l'ai écrit dans cet article :
    http://sqlpro.developpez.com/cours/s...partie2#L7.6.1

    Voici un exemple plus poussé encore pur un cas de figure similaire :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    CREATE TABLE T_INCORRECTE_ICT
    (ICT_ID      INT NOT NULL CONSTRAINT PK_ICT PRIMARY KEY,
     ICT_DATA    VARCHAR(32))
     
     
    INSERT INTO T_INCORRECTE_ICT VALUES (1, 'toto')
    INSERT INTO T_INCORRECTE_ICT VALUES (2, 'tata')
     
     
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
     
    BEGIN TRANSACTION
     
    DECLARE @SQL NVARCHAR(4000)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT ADD ICT_ID_tmp INT'
    EXEC(@SQL)
     
    SET @SQL = 'UPDATE T_INCORRECTE_ICT SET ICT_ID_tmp = ICT_ID'
    EXEC(@SQL)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT DROP CONSTRAINT PK_ICT'
    EXEC(@SQL)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT DROP COLUMN ICT_ID'
    EXEC(@SQL)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT ADD ICT_ID INT NOT NULL DEFAULT 0 WITH VALUES'
    EXEC(@SQL)
     
    SET @SQL = 'UPDATE T_INCORRECTE_ICT SET ICT_ID = ICT_ID_tmp'
    EXEC(@SQL)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT ADD CONSTRAINT PK_ICT PRIMARY KEY (ICT_ID)'
    EXEC(@SQL)
     
    SET @SQL = 'ALTER  TABLE T_INCORRECTE_ICT DROP COLUMN ICT_ID_tmp'
    EXEC(@SQL)
     
    COMMIT TRANSACTION
     
    SET TRANSACTION ISOLATION LEVEL READ COMMITTE

    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/ * * * * *

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/03/2007, 17h25
  2. [debutant] probleme pour lancer sql
    Par tomsoyer dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/08/2004, 18h29
  3. [Debutant]Probleme pour Debugger sours JCreator
    Par Flam dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 1
    Dernier message: 12/05/2004, 19h27
  4. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21
  5. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29

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