主题:设置数据类型
triumph
[专家分:160] 发布于 2006-06-01 13:55:00
sqlserver里面我设置id为自动增长类型,标识种子为0,标识递增量为1.
假如已经添加两条记录,id分别为1,2
现在当我删除一条记录时,再添加一条记录时,id就从3开始了,而不是2
请问能不能设置,永远都从1.2.3这样开始啊?
回复列表 (共5个回复)
沙发
a97191 [专家分:4040] 发布于 2006-06-01 14:04:00
不能,除非是人工输入,不要自动增量
板凳
rr5566 [专家分:460] 发布于 2006-06-01 15:19:00
可以啊。只要你每次都从头开始就行了。呵呵。
3 楼
davidhoo1985 [专家分:2050] 发布于 2006-06-01 21:44:00
你试试自己写个触发器对应这个Id
删除的时候自动把Id减去1
4 楼
胡然学无止境 [专家分:370] 发布于 2006-06-02 00:03:00
identity属性是可以设置的,
例如:你可以这样identity(5,2)
那么就从5开始,每次增加2。但它不支持用户输入。
如果将中间的行删除了,还是会继续往下以2的速度增加
5 楼
233238447 [专家分:1350] 发布于 2006-06-14 22:23:00
给几条语句你,呵呵
不过每次只能删一条,和删一条
这是我帮人家设计项目,控制那个用户信息管理的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'
我来回复