我要向一个表中插入数据,且这个表中的ID不是自动连续的,我插入的数据如何让其ID自动增长;

我写的SQL语句是:insertintoKQ_EmpLeaveselectID要自动增长,应如何写parentdeptid,1,startdate,enddate,sta... 我写的SQL语句是: insert into KQ_EmpLeave
select ID要自动增长,应如何写
parentdeptid,
1,
startdate,
enddate,
starttime,
endtime,
-- class,
null,
applydays,
pe.partautoid1,
pe.partautoid2,
pe.partautoid3,
pe.partautoid4,
pe.partautoid5,
pe.dutyname,

from OATOHR_QJD afq
inner join ps_employee pe
on afq.parentdeptid=pe.empno

KQ_EmpLeave 中的ID不是自动增长的,现其中已经有31685条数据
展开
 我来答
祚胤17
2011-09-07 · TA获得超过786个赞
知道大有可为答主
回答量:1148
采纳率:82%
帮助的人:593万
展开全部
自增列的类型应为int或bigint型。可以设置起始和每次递增数。
  如:create table [table1]
  (
  [id] [int] identity(1,1)...
  )
  这样每次插入则不需要为主键设置参数,数据库会根据设置的递增条件,自动给出主键值。
  如以上代码所示,则第一次插入后主键为1,第二次为2,一次递增。
  需要注意的是:如果这个表中有10条数据,主键为1-10不间断的数字,那现在要删除第十条数据,
  继续插入的话,id则会变成11,而不是10。通俗的说就是主键使用过一次将不会再次使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ecc263c
2011-08-31 · TA获得超过624个赞
知道小有建树答主
回答量:478
采纳率:100%
帮助的人:376万
展开全部
declare @fid int
set @fid=(select max(id) from KQ_EmpLeave)--取得最大值
set @fid=@fid+1--最大值+1
再将这个@fid赋值给要插入的id即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2011-08-31 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3299万
展开全部
什么数据库?
如果是 SQL Server 2005 以上版本的话。
可以使用

select
31685 + ROW_NUMBER() OVER( order by ID)
来处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
同碧曼00F
2011-08-31 · TA获得超过357个赞
知道小有建树答主
回答量:649
采纳率:0%
帮助的人:297万
展开全部
创建表时下面的属性有自动增长这一项,你选是行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-31
展开全部
每次求最大值,然后加一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式