簡體   English   中英

插入語句中的SQL Select

[英]SQL Select in an Insert statement

如何合並這兩個腳本? 我基本上不想對Query 2的數字34進行硬編碼。 我希望腳本采用下一個job_id。 Query 1返回34 ,因此Query 2應該將35作為job_id

查詢1

select top 1 job_id from job
order by job_id desc

查詢1-34的輸出

查詢2

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

通過將job_id定義為identity列來執行此操作:

create table jobs (
     job_id int identity(1, 1) primary key,
     name varchar(255)
);

然后,您可以執行以下操作:

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

然后,SQL Server分配作業ID。

這個怎么樣?

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

不需要使用order by job_id desctop 1 order by job_id desc來獲取所需的值。
您需要max(job_id) + 1

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM