急!!!请救一个SQL标识列的问题~~~~~~~~~~~~~~~~~
我一个表设了ID字段为标识列,插入的时候是1,2,3.......一直下去,我删除其中的3,再插入的时候他是从4开始的,请问如何再从3开始插入?--------------------编程问答-------------------- 重建表
--------------------编程问答-------------------- 那是没办法解决的
你为什么要实现那样的效果呢? --------------------编程问答-------------------- 重建表那不是效率极低哦 --------------------编程问答-------------------- 标识列就这样,从程序要求上讲这是合理的,你就算删了它也是存在过的,既然存在过就不能被占用..
要么你删了数据后把标识符列改为不标识保存后再改为标识列保存,要么就不要用标识列,自己写程序存 --------------------编程问答-------------------- 删除标识 -> 重建标识 --------------------编程问答-------------------- 是啊,重建表我会死的!
DBCC CHECKIDENT (表, RESEED, 2)
可以用这个办法,但是如果重置的值是不固定的呢? --------------------编程问答-------------------- 为什么要实现这样的效果呢? --------------------编程问答-------------------- 因为显示所有记录时,ID是有断开的啊 --------------------编程问答-------------------- 你自己写个序号列就是
显示时 不用标识列就是 --------------------编程问答--------------------
--------------------编程问答-------------------- 当你的数据量较大时,这个SQL句子对数据库的考验可能比较大。
/*原始数据表 temp
--执行SQL
select * from temp
myid myName add
----------- ---------- ----------
1 a a
2 b b
3 c c
5 d d
4 e c
9 f d
(所影响的行数为 6 行)
*/
------------------------------------
--执行SQL语句
select (select count(*) from temp b where b.myid < a.myid)+1 as Order_ID, a.* from temp a
Order_ID myid myName add
----------- ----------- ---------- ----------
1 1 a a
2 2 b b
3 3 c c
5 5 d d
4 4 e c
6 9 f d
(所影响的行数为 6 行)
补充:.NET技术 , ASP.NET