sqlserver2008R2主键id丢失

富坚老贼你更啊 2016-04-11 03:27:44
在sqlserver2008R2数据库里设置第一列名为id 第二列name

id设成了主键让它初始为1并且+1递增

插入数据时却碰到这么一个问题
每次删除一行后这行的id再也不会出现了。比如这个表有三行记录,把第三行删除以后再添加数据为什么id显示的是4而不是3

...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishparadise 2016-04-12
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
identity属性的特性决定的,每个标识值只用1次,如需再次使用,需先set identity_insert [表名] on后显示插入此列,如下例子, 参考 https://msdn.microsoft.com/zh-cn/library/ms186775(v=sql.105).aspx

create table zd
(id int identity(1,1) not null,
 name varchar(10)
 constraint pk_zd primary key (id)
)

insert into zd(name)
  select 'aa' union all
  select 'bb' union all
  select 'cc'

select * from zd
/*
id          name
----------- ----------
1           aa
2           bb
3           cc

(3 row(s) affected)
*/

-- 把第三行删除
delete from zd where id=3


-- 再添加数据,id=3
set identity_insert zd on

  insert into zd(id,name)
    select 3,'cc2'

set identity_insert zd off


-- 结果
select * from zd

/*
id          name
----------- ----------
1           aa
2           bb
3           cc2

(3 row(s) affected)
*/
解答得好详细哦!!
spiritofdragon 2016-04-11
  • 打赏
  • 举报
回复
自增序列:identity(1,1),就是这样的。你要不想这样,只能手动生成序列,比如max(id)+1,但实际效果不如自增序列。
唐诗三百首 2016-04-11
  • 打赏
  • 举报
回复
identity属性的特性决定的,每个标识值只用1次,如需再次使用,需先set identity_insert [表名] on后显示插入此列,如下例子, 参考 https://msdn.microsoft.com/zh-cn/library/ms186775(v=sql.105).aspx

create table zd
(id int identity(1,1) not null,
 name varchar(10)
 constraint pk_zd primary key (id)
)

insert into zd(name)
  select 'aa' union all
  select 'bb' union all
  select 'cc'

select * from zd
/*
id          name
----------- ----------
1           aa
2           bb
3           cc

(3 row(s) affected)
*/

-- 把第三行删除
delete from zd where id=3


-- 再添加数据,id=3
set identity_insert zd on

  insert into zd(id,name)
    select 3,'cc2'

set identity_insert zd off


-- 结果
select * from zd

/*
id          name
----------- ----------
1           aa
2           bb
3           cc2

(3 row(s) affected)
*/

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧