回 帖 发 新 帖 刷新版面

主题:设置数据类型

sqlserver里面我设置id为自动增长类型,标识种子为0,标识递增量为1.
假如已经添加两条记录,id分别为1,2
现在当我删除一条记录时,再添加一条记录时,id就从3开始了,而不是2
请问能不能设置,永远都从1.2.3这样开始啊?

回复列表 (共5个回复)

沙发

不能,除非是人工输入,不要自动增量

板凳

可以啊。只要你每次都从头开始就行了。呵呵。

3 楼

你试试自己写个触发器对应这个Id
删除的时候自动把Id减去1

4 楼

identity属性是可以设置的,
例如:你可以这样identity(5,2)
那么就从5开始,每次增加2。但它不支持用户输入。
如果将中间的行删除了,还是会继续往下以2的速度增加

5 楼

给几条语句你,呵呵
 不过每次只能删一条,和删一条
  这是我帮人家设计项目,控制那个用户信息管理的ID编号而写的,你想多输入,和多删除,自己去照着去想吧
use pubs
drop trigger trig_del
drop trigger trig_ins
go
create table bbs
(
    code int,
    users varchar(20),
    pwd varchar(20)
)
go
    select *  from bbs
 go
 create trigger trig_ins
on bbs
for insert 
as
  declare @a int
   if not exists(select *  from bbs)
  begin 
     select @a=count(*) from bbs 
        update bbs set code=@a
end 
else
  begin
        select @a=count(*) from bbs
        update bbs set code=@a where users=(select users from inserted) and pwd=(select pwd from inserted)
  end
go
create trigger trig_del
on bbs
for delete
 as 
    declare @b int
  select @b=code from deleted
  update bbs set code=code-1 where code>@b
   return
end
go
insert into bbs values('3','dsf','dfsa')
select * from bbs
delete bbs where users='fdas'

我来回复

您尚未登录,请登录后再回复。点此登录或注册