亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于sql server 自動編號問題

關于sql server 自動編號問題

慕桂英546537 2018-09-05 17:17:46
請問大家是如何解決sql server 自動編號問題的,謝謝??!
查看完整描述

2 回答

?
精慕HU

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的代碼就不寫了,自己悟吧。

查看完整回答
反對 回復 2018-09-21
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

自動編號有什么問題?
設為關鍵字,然后在屬性里雙擊標識那一欄就可以了啊

查看完整回答
反對 回復 2018-09-21
  • 2 回答
  • 0 關注
  • 1025 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號