Insert语句中的SQL Select
如何组合这两个脚本?我基本上不想在Insert语句中的SQL Select,sql,Sql,如何组合这两个脚本?我基本上不想在query2中硬编码编号34。我希望脚本获取下一个编号的作业id。query1返回34,因此query2应将35作为作业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') 这个怎么样 insert into job (job_id, name) selec
query2
中硬编码编号34
。我希望脚本获取下一个编号的作业id。query1
返回34
,因此query2
应将35
作为作业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')
这个怎么样
insert into job (job_id, name)
select top 1 job_id+1, 'Defend them'
from job
order by job_id desc
这个怎么样
insert into job (job_id, name)
select top 1 job_id+1, 'Defend them'
from job
order by job_id desc
通过将
job\u 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。您可以通过将
作业id
定义为标识列来完成此操作:
create table jobs (
job_id int identity(1, 1) primary key,
name varchar(255)
);
select top 1 job_id, 'Defend them'
into job (job_id, name)
from job
order by job_id DESC
然后你可以做:
insert into jobs (name)
values ('Defend them');
SQL Server会分配作业id。无需使用按作业id描述排序和前1
来获取所需的值
select top 1 job_id, 'Defend them'
into job (job_id, name)
from job
order by job_id DESC
您需要max(作业id)+1
insert into job (job_id, name)
select max(job_id) + 1, 'Defend them'
from job
无需使用order by job_id desc
和top 1
来获取所需的值
您需要max(作业id)+1
insert into job (job_id, name)
select max(job_id) + 1, 'Defend them'
from job
简要说明这部作品如何/为什么对未来的读者非常有帮助。简要说明这部作品如何/为什么对未来的读者非常有帮助。