当前位置:编程学习 > C#/ASP.NET >>

急!!!请救一个SQL标识列的问题~~~~~~~~~~~~~~~~~

我一个表设了ID字段为标识列,插入的时候是1,2,3.......一直下去,我删除其中的3,再插入的时候他是从4开始的,请问如何再从3开始插入?
--------------------编程问答-------------------- 重建表
--------------------编程问答-------------------- 那是没办法解决的
你为什么要实现那样的效果呢? --------------------编程问答-------------------- 重建表那不是效率极低哦 --------------------编程问答-------------------- 标识列就这样,从程序要求上讲这是合理的,你就算删了它也是存在过的,既然存在过就不能被占用..
要么你删了数据后把标识符列改为不标识保存后再改为标识列保存,要么就不要用标识列,自己写程序存 --------------------编程问答-------------------- 删除标识 -> 重建标识 --------------------编程问答-------------------- 是啊,重建表我会死的!
DBCC CHECKIDENT (表, RESEED, 2)
可以用这个办法,但是如果重置的值是不固定的呢? --------------------编程问答-------------------- 为什么要实现这样的效果呢? --------------------编程问答-------------------- 因为显示所有记录时,ID是有断开的啊 --------------------编程问答-------------------- 你自己写个序号列就是
显示时 不用标识列就是 --------------------编程问答--------------------

/*原始数据表 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 行)

--------------------编程问答-------------------- 当你的数据量较大时,这个SQL句子对数据库的考验可能比较大。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,