Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requete avec compteur

2 réponses
Avatar
Pierre-Yves
Je souhaiterais insérer des enregistrements dans une table
en mettant à jour un champ avec un compteur qui s'incrémenterait

exemple souhaité:
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1

je voudrais éviter de faire une boucle WHILE en faisant une insertion à
chaque tour. Je voudrais le faire en une seule fois
WHILE cpt<=50

BEGIN
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1
END
cpt=cpt+1

Est-ce possible.

2 réponses

Avatar
Aba
Vous pouvez utiliser l'option SET IDENTITY_INSERT qui permet de désactiver
la numérotation automatique. Mais il ne faut surtout pas oublier après le
insert de la remettre à faux.
Soit :
SET IDENTITY_INSERT ON
INSERT INTO TABLE (id,champ1,champ2) SELECT id1,champ3,cpt+1 FROM TABLE1
SET IDENTITY_INSERT OFF


"Pierre-Yves" a écrit dans le message de
news:%
Je souhaiterais insérer des enregistrements dans une table
en mettant à jour un champ avec un compteur qui s'incrémenterait

exemple souhaité:
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1

je voudrais éviter de faire une boucle WHILE en faisant une insertion à
chaque tour. Je voudrais le faire en une seule fois
WHILE cpt<P

BEGIN
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1
END
cpt=cpt+1

Est-ce possible.




Avatar
Aba
Vous pouvez utiliser l'option SET IDENTITY_INSERT qui permet de désactiver
la numérotation automatique. Mais il ne faut surtout pas oublier après le
insert de la remettre à faux.
Soit :
SET IDENTITY_INSERT ON
INSERT INTO TABLE (id,champ1,champ2) SELECT id1,champ3,cpt+1 FROM TABLE1
SET IDENTITY_INSERT OFF


"Pierre-Yves" a écrit dans le message de
news:%
Je souhaiterais insérer des enregistrements dans une table
en mettant à jour un champ avec un compteur qui s'incrémenterait

exemple souhaité:
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1

je voudrais éviter de faire une boucle WHILE en faisant une insertion à
chaque tour. Je voudrais le faire en une seule fois
WHILE cpt<P

BEGIN
ISERT INTO TABLE (id,champ1,champ2)
SELECT id1,champ3,cpt+1
FROM TABLE1
END
cpt=cpt+1

Est-ce possible.