2 回答

TA貢獻1845條經驗 獲得超8個贊
你創建一個表,把其中一個列(比如“ID”)的“標識列”屬性設為“是”,然后設置它的種子(初始值)、遞增量。比如你按默認設定種子為1、遞增量為1,那么生成的ID序列就會是:1、2、3、4、……
在記錄不是特別多(>1000萬條)時,這個值是唯一的,也就是不會出現兩者相同的情況。
但這樣會有一個問題,比如你順序生成了10條記錄:
1、2、3、4、5、6、7、8、9、10
然后你刪除了3號記錄,這樣剩下的記錄就是:
1、2、4、5、6、7、8、9、10
如果你希望編號是從1累加到,中間不隔斷,那你就要設定另一個非標識列比如“number”。然后在添加新記錄時使用:
select @number=max(number) from tablename
insert tablename(number) values(@number+1)
------------------------
以上使用SQL語句示范,假定你使用存儲過程操作數據庫,如果你使用ASP,就這樣:
psql="select max(number) as maxnumber from tablename"
rs.open psql,conn,3,3
maxnumber=rs("maxnumber")
將最大number值讀出,然后加1,再用于你的數據添加語句。
------------------------
這樣就可以手動生成編號了,然后在刪除記錄的時候這樣寫程序:
' 假定要刪除的記錄編號為@n
delete tablename where number=@n
update tablename set number=number-1 where number>@n
這樣就會在刪除記錄后重新整理編號順序了。同樣是SQL語句示范,用ASP+SQL的代碼就不寫了,自己悟吧。
- 2 回答
- 0 關注
- 1025 瀏覽
添加回答
舉報