我在数据库中设计了个 表 表中有orderid 字段,是identity(1,1) ,不是关键字,
每点击一次按钮 插入条数据,用户也能删除
当用户删除时, 比如orderid 是1000 删除orderid-1000 的数据
当用户再添加时,这个orderid 会不会是1000 然后再插入数据库 》??????
每点击一次按钮 插入条数据,用户也能删除
当用户删除时, 比如orderid 是1000 删除orderid-1000 的数据
当用户再添加时,这个orderid 会不会是1000 然后再插入数据库 》??????
删除后新增,会在原来的基础上加 1
也就是 orderid=1001
自增长列会一直累加。
如果你想到这个,不如用 select isnull(max(orderid),0) + 1 from tb来实现.
该列不能自己插入的,除了用了
SET IDENTITY_INSERT tb ON
设置,才能显式插入自增列值(且要比它已经使用过的最大值大).
或者开启 set identity_insert t oncreate table t
(
id int identity(1,1),
name varchar(20)
)insert t(name)
values('1')
go 10select * from t
/*
id name
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
*/
delete from t where id=1
select * from t
/*
id name
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
*/
set identity_insert t on
insert into t(id,name) ----注意,一定要显示的将列名写出来
values(1,1)select * from t
/*
id name
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
*/
你可以通过
scope_identity()方法获取目前表中最大的identity值,在它的基础上加1