Mise à jour de l'auto incrémentation du clé primaire

Résolu
samouhanadia - 30 avril 2013 à 18:22
 samouhanadia - 3 mai 2013 à 21:41
Bsr a tous
Je suis encore débutante en Java,je suis en train de faire une application sous NetBeans avec une Base de donnée sous Sql server 2005.
SVP j'aimerai avoir la syntaxe sql qui permet de réinitialiser l’auto-incrément après avoir fait une mise a jour sur une table
Exp: si j'ai comme clé les valeurs allant de 1 à 5 et après suppression de l'enregistrement ou la clé est 3 il faudrait que l’enregistrement de clé 4 ait maintenant la clé 3.......
ou même une autre méthode qui me permet de réinitialiser mon clé primaire aprés les opérations faite sur la Base de donnée!!!!
j'ai consulter bcp des forums mais en vain!!!!!
Svp aidez moi c'est urgent
A voir également:

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
3 mai 2013 à 21:40
Salut,

une PK peut très bien avoir la suite suivante avec des trous :
1, 2, 3, 5, 6, 100, 200, 1000, 1001, 1002

Ceci dit,
voici les instructions pour manipuler finement l'ident seed d'une colonne IDENTITY

/* Crée un identity qui démarre à 1 et s'incrémente de 1 */
CREATE TABLE #T(_id int IDENTITY(1,1), _data varchar(10))

/* Ajoute 3 valeurs */
INSERT INTO #T VALUES('ID 1');
INSERT INTO #T VALUES('ID 2');
INSERT INTO #T VALUES('ID 3');

SELECT * FROM #T

-- Supprime l'ID 2
DELETE FROM #T WHERE _id = 2

SELECT * FROM #T

-- ----------> Force la réinsertion à l'id 2
SET IDENTITY_INSERT #T ON
-- <----------

INSERT INTO #T(_id, _data) VALUES(2, 'force 2')

SELECT * FROM #T

-- ----------> 
--  Réactive identity auto
-- <----------
SET IDENTITY_INSERT #T OFF

-- stat sur le seed en cours  pour #T 
SELECT 
identSEED = IDENT_SEED('#T'),
identMIN = MIN($IDENTITY),
identMAX = MAX($IDENTITY) 
FROM #T

-- Change le seed pour redémarrer le compteur à 11
DBCC CHECKIDENT ('tempdb..#T', RESEED, 10);

INSERT INTO #T(_data) VALUES('force 11')

SELECT * FROM #T

DROP TABLE #T


bye...
1
samouhanadia
3 mai 2013 à 21:41
Merci bien :)
0
Rejoignez-nous