0
votes

SQL Select dans une instruction Insert

Comment puis-je combiner ces deux scripts? En gros, je ne veux pas coder en dur le numéro 34 dans Query 2 . Je veux que le script prenne le prochain numéro de job_id. Query 1 renvoie 34 , donc Query 2 doit prendre 35 comme job_id .

Requête 1

insert into job (job_id, name)
values (35, 'Defend them')

Résultat de la requête 1 - 34

Requête 2

select top 1 job_id from job
order by job_id desc

sql

0 commentaires

4 Réponses :


0
votes

Et ça?

insert into job (job_id, name)
select top 1 job_id+1, 'Defend them'
from job
order by job_id desc


0 commentaires

2
votes

Pour ce faire, définissez job_id comme colonne identity :

insert into jobs (name)
    values ('Defend them');

Ensuite, vous pouvez simplement faire:

XXX

Et SQL Server attribue l'ID de la tâche.


0 commentaires

0
votes
select     top 1 job_id, 'Defend them' 
into       job (job_id, name)
from       job
order by   job_id DESC

1 commentaires

Une brève explication de comment / pourquoi cela fonctionne serait très utile aux futurs lecteurs.



0
votes

Il n'est pas nécessaire d'utiliser order by job_id desc et top 1 pour obtenir la valeur souhaitée.
Vous avez besoin de max (job_id) + 1

insert into job (job_id, name)
select max(job_id) + 1, 'Defend them'
from job


0 commentaires