2 回答

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

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
自動(dòng)編號(hào)有什么問(wèn)題?
設(shè)為關(guān)鍵字,然后在屬性里雙擊標(biāo)識(shí)那一欄就可以了啊
- 2 回答
- 0 關(guān)注
- 1021 瀏覽
添加回答
舉報(bào)