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 :

Identité repart à 1 quand table vidée


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut Identité repart à 1 quand table vidée
    Bonjour,

    Je viens de remarquer que lorsqu'une table est vidée, et que je fais une insertion sur cette même table juste après, alors la colonne IDMaTable qui est identité (1,1) repart à 1, ce que je ne souhaites pas.

    Est-il possible de forcer SQL Server à incrémenter l'IDMaTable ?

    En vous remerciant, ElSüket.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 010
    Billets dans le blog
    6
    Par défaut
    Pas du tout ! Démo :

    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
    CREATE TABLE T_INC 
    (I INT IDENTITY, 
     D DATETIME DEFAULT CURRENT_TIMESTAMP)
    GO
     
    INSERT INTO T_INC VALUES (DEFAULT)
    INSERT INTO T_INC VALUES (DEFAULT)
    INSERT INTO T_INC VALUES (DEFAULT)
    GO
     
    SELECT * FROM T_INC
    GO
     
    I           D
    ----------- -----------------------
    1           2007-05-24 14:44:08.263
    2           2007-05-24 14:44:08.280
    3           2007-05-24 14:44:08.280
     
    DELETE FROM T_INC
    GO
     
    INSERT INTO T_INC VALUES (DEFAULT)
    GO
     
    SELECT * FROM T_INC
    GO
     
    I           D
    ----------- -----------------------
    4           2007-05-24 14:44:23.983
    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/ * * * * *

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Effectivement, par contre le TRUNCATE remet l'ID à 1:


    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
    43
    44
    45
    46
     
    CREATE TABLE TOTO (IDTOTO INT IDENTITY, TOTO VARCHAR(10))
    GO
     
    INSERT TOTO VALUES ('TOTOA')
    INSERT TOTO VALUES ('TOTOB')
    INSERT TOTO VALUES ('TOTOC')
    INSERT TOTO VALUES ('TOTOD')
     
    SELECT * FROM TOTO
     
    IDTOTO      TOTO
    ----------- ----------
    1           TOTOA
    2           TOTOB
    3           TOTOC
    4           TOTOD
     
    (4 row(s) affected)
     
     
    TRUNCATE TABLE TOTO
    GO
     
    INSERT TOTO VALUES ('TOTOA')
     
    IDTOTO      TOTO
    ----------- ----------
    1           TOTOA
     
    -- Pour vérifier
     
    DELETE FROM TOTO WHERE TOTO = 'TOTOA'
    GO
    INSERT TOTO VALUES ('TOTOA')
    GO
    SELECT * FROM TOTO
     
    (1 row(s) affected)
     
    (1 row(s) affected)
    IDTOTO      TOTO
    ----------- ----------
    2           TOTOA
     
    (1 row(s) affected)

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

Discussions similaires

  1. Comment éviter d'afficher une erreur quand table vide
    Par lelapinrusse dans le forum Langage
    Réponses: 6
    Dernier message: 16/05/2008, 19h00
  2. [JTable] afficher la table vide au début
    Par orgoz dans le forum Composants
    Réponses: 5
    Dernier message: 06/01/2005, 15h21
  3. Réponses: 11
    Dernier message: 09/12/2004, 15h03
  4. Table vide dans une BD
    Par Riouxe21 dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 19h48
  5. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 14h24

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