begin process at 2012 05 25 12:03:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > SQL SERVER - COMMENT REINITIALISER UN CHAMP ID AUTOINCREMENTE

SQL SERVER - COMMENT REINITIALISER UN CHAMP ID AUTOINCREMENTE


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :identity, autoincrément, id Niveau :Initié Date de création :28/04/2006 Vu :16 937

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

Dans de nombreux cas, on souhaite pouvoir remettre un champ ID autoincrémenté à 0 ou même à une valeur donnée.
Si on supprime simplement les données de la table, le numéro de la prochaine valeur reste en mémoire avec le contenu ancien.
On peut donc faire cela suivant plusieurs possibilité :
- casser et recréer la propriété autoincrémenté
- Truncate de la table (vide celle-ci et remet le compteur à 0)
- DBCC CHECKIDENT (remet la table pour le champ autoincrément à la valeur voulue)


Source

  • ------------------------------------------------------------------------
  • -- Cas de Truncate :
  • TRUNCATE LaTable
  • -- > vide la table et remet le compteur à 0
  • ------------------------------------------------------------------------
  • -- Cas de CheckIndex
  • DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value)
  • -- > la prochaine valeur de @@IDENTITY sera new_reseed_value + 1
  • ------------------------------------------------------------------------
------------------------------------------------------------------------
-- Cas de Truncate :
 TRUNCATE LaTable
-- > vide la table et remet le compteur à 0

------------------------------------------------------------------------
-- Cas de CheckIndex
 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value)
-- > la prochaine valeur de @@IDENTITY sera new_reseed_value + 1

------------------------------------------------------------------------

 Conclusion

Bon coding

Romelard Fabrice


 Sources du même auteur

SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON...
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN...
SQL SERVER - OBTENIR LA POSITION DU PREMIER CHIFFRE D'UNE CH...
SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT

 Sources de la même categorie

Source avec Zip Source avec une capture SQL SERVER - GENERATION AUTOMATIQUE D'UNE RETRO-DOCUMENTATIO... par FENETRES
[SQL SERVEUR] VÉRIFIER L'ESPACE OCCUPÉ DANS UNE BASE DE DONN... par Hyperion
TROUVER LES PROCHAINS ANNIVERSAIRES par zefo
REQUÊTE SQL POUR DÉTERMINER L'ESPACE OCCUPÉ DANS LES TABLESP... par sgoriaud
SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE par fabrice69

 Sources en rapport avec celle ci

RECHERCHE DU PREMIER IDENTIFIANT MANQUANT (TROU) D'UNE TABLE par djhal

Commentaires et avis

Commentaire de econs le 12/05/2006 15:47:28 administrateur CS

Autre solution (que j'utilisais, mais par ignorance) : un DELETE sur la table, et un CREATE pour la recréer.
Mais le TRUNCATE est quand même beaucoup plus élégant :o)

Commentaire de asecher le 11/09/2006 21:10:41

Très clean comme solution, surtout quand on maquette sa base...

Commentaire de FENETRES le 13/11/2007 15:08:40

Il faudrait tout de même rappeler qu'un TRUNCATE est impossible sur une table référencée par une clé étrangère.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

@@identity apres Insertion [ par issoux ] Bonjour,  J'utilise dans une stored procedure trois  Insert . J'ai besoin de l'id du premier insert pour le mettre dans le deuxieme Insert . Mes id so Pointer sur l'enregistrement Max(id) [ par gatita_dev ] Bonjour,je veux faire une requête qui me renvoie la ligne qui a le id maximum.voilà ce que j'ai fait"SELECT *FROM users where id=max("id");mais il me PROBLEME REQUETE SELECT [ par brute ] Bonjour,J'ai un probleme de REQUETE SELECT avec ORacle  .J4ai une table avec 4 colonnes, ID, FACE, PARAM, VALEURl'ID prend les valeurs (1 ou 2 ou 3 ou probleme stored dynamique [ par marc_dd ] bonjour à tousVoilà je voudrais faire une stored dynamique mais je n' arrive pas à retrouver mes paramètre  le code sera plus parlant voilà le code :A Besoin d'aide pour 2 petites requetes SQL [ par nacnac707 ] Bonjour, Je cherche 2 requete pour mon site, je suis débutant et j'ai un peu de mal à avancer :-(Merci à ceux qui pourront m'aider !J'ai 3 tables <p Récursivité avec MySQL [ par Flux__ ] Bonjour,J'ai créer la table suivante :##==============================================================#### Table : EMPLOYE                             Gestion d'emploi du temps [ par nadias ] Bonsoir a tous,Je dois créer une petite base de données qui va me permettre de gérer l'emploi du temps de differentes classes sachant que j'ai au maxi traduction d'une requtte sql [ par 071714016 ] j'ai un problème avec une version SQL 4.0 il ne reconnait pas "not in (select" "select * from chat where recepteur='$idlogin' and etat_r!=1 and emeteu Intégrité référentielle [ par yahia_bens ] Comment implémenter l'intégrité référentielle à l'aide d'un déclencheur quand on a une relation unaire(pere-&gt;fils), pour éviter les cycles.Soit la Select paginé [ par thiosyiasar ] Bonjour a tous,Pour une page aspx, je voudrais faire un select paginé du genre : SELECT TOP (@nb_ligne) * FROM newsletter WHERE nlt_id in(  SELECT nlt


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales