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

Requete d'insertion avec champ compteur

2 réponses
Avatar
Serge Fournier
Bonjour,

je fais une insertion dans une table sur le modèle :

"INSERT PIPT_CycleDetails
(
CYD_CycleId,
CYD_CycleDetailOrder,
CYD_CycleDetailActionId,
CYD_CycleDetailComments,
CYD_CycleDetailActionWeek,
CYD_CycleDetailPreferedDay,
CYD_CycleDetailId
)
(SELECT
12,
MOT_MDChrono,
MOT_MDActionId,
MOT_MDComments,
MOT_MDActionWeek,
MOT_MDPreferedDay,
iciMaValeurMax
FROM PIPT_ModelDetails WHERE MOT_MDModelId = 15)"

J'aimerai passer la valeur de départ de "iciMaValeurMax" et avoir un
increment pour chaque record inséré.

Comment faire ? Merci pour toute suggestion.

2 réponses

Avatar
Jean Christophe CHENIS
Bonjour
Je pense qu'il suffit que tu déclares ton champs
[PIPT_CycleDetails].[CYD_CycleDetailId] en tant que compteur.
Ainsi, dans ta requète INSERT, tu n'as pas besoin de préciser
"CYD_CycleDetailId" et dans ton SELECT, tu n'as pas besoin de préciser
"iciMaValeurMax".
Ce champs sera géré automatiquement (et en auto incrément) par sql server.

Jean-Christophe


"Serge Fournier" a écrit dans le message news:

Bonjour,

je fais une insertion dans une table sur le modèle :

"INSERT PIPT_CycleDetails
(
CYD_CycleId,
CYD_CycleDetailOrder,
CYD_CycleDetailActionId,
CYD_CycleDetailComments,
CYD_CycleDetailActionWeek,
CYD_CycleDetailPreferedDay,
CYD_CycleDetailId
)
(SELECT
12,
MOT_MDChrono,
MOT_MDActionId,
MOT_MDComments,
MOT_MDActionWeek,
MOT_MDPreferedDay,
iciMaValeurMax
FROM PIPT_ModelDetails WHERE MOT_MDModelId = 15)"

J'aimerai passer la valeur de départ de "iciMaValeurMax" et avoir un
increment pour chaque record inséré.

Comment faire ? Merci pour toute suggestion.




Avatar
Mel
Allo,
Tu pourrais utiliser la fonction identity qui ajoute un
champ qui s'incrémente dans une table. Tu peux
déterminer le début de l'incrémentation si tu ne désires
pas que ce soit 1.
Voici un exemple:
SELECT emp_id AS emp_num,
fname AS first,
minit AS middle,
lname AS last,
IDENTITY(smallint, 100, 1) AS job_num,
job_lvl AS job_level,
pub_id,
hire_date
INTO employees --C'est le nom de la nouvelle table
FROM employee

Dans ton cas je crois que le code suivant pourrait
fonctionner: (Je crois que tu dois obligatoirement créer
une nouvelle table, il faudrait faire le test...)
SELECT
12,
MOT_MDChrono,
MOT_MDActionId,
MOT_MDComments,
MOT_MDActionWeek,
MOT_MDPreferedDay,
IDENTITY(int, 1, 1)as iciMaValeurMax
into PIPT_CycleDetails -- si c'est une table qui
FROM PIPT_ModelDetails existe déjà, je
WHERE MOT_MDModelId = 15 pense que ça ne
fonctionne pas...


Tu m'en redonneras des nouvelles,
Mel

-----Message d'origine-----
Bonjour,

je fais une insertion dans une table sur le modèle :

"INSERT PIPT_CycleDetails
(
CYD_CycleId,
CYD_CycleDetailOrder,
CYD_CycleDetailActionId,
CYD_CycleDetailComments,
CYD_CycleDetailActionWeek,
CYD_CycleDetailPreferedDay,
CYD_CycleDetailId
)
(SELECT
12,
MOT_MDChrono,
MOT_MDActionId,
MOT_MDComments,
MOT_MDActionWeek,
MOT_MDPreferedDay,
iciMaValeurMax
FROM PIPT_ModelDetails WHERE MOT_MDModelId = 15)"

J'aimerai passer la valeur de départ de "iciMaValeurMax"


et avoir un
increment pour chaque record inséré.

Comment faire ? Merci pour toute suggestion.


.