新聞中心
Sybase自增字段是我們經(jīng)常遇到的問題,下面就為您分析Sybase自增字段跳號的原因,并給出解決的方法,希望能夠幫助到您。

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。
Sybase自增字段跳號原因及影響:
在Sybase數(shù)據(jù)庫中如果數(shù)據(jù)庫在開啟的情況下,因為非正常的原因(死機、斷電)而導(dǎo)致數(shù)據(jù)庫服務(wù)進程強制結(jié)束。
那么自動增長的字段將會產(chǎn)生跳號的情況,再往數(shù)據(jù)表里面插入記錄時,自增字段會跳到一個相當(dāng)大的值上面,以至于主鍵的自增值極有可能被用盡,或由于數(shù)值太大,應(yīng)用程序中的數(shù)據(jù)類型如int型等已無法容下這么大的值,而無法在程序里面進行相關(guān)的操作。
Sybase自增字段調(diào)號解決辦法:
如果還未發(fā)生過跳號情況,可按如下辦法解決:
1.執(zhí)行
【 select 'sp_chgattribute ' + name + ', ''' + 'identity_gap' + '''' + ', 60 go'
from sysobjects
where type='U'】。
其中的60是憑感覺給的一個值,一般來說這個值越大性能越好,但越大,再發(fā)生數(shù)據(jù)庫服務(wù)進程非正常結(jié)束時,所跳的號也就越大。
2.對1執(zhí)行的結(jié)果,拷貝到SQL編輯區(qū)域,再執(zhí)行。
若已經(jīng)發(fā)生跳號,需要將表中數(shù)據(jù)導(dǎo)出,再重建數(shù)據(jù)表,再執(zhí)行1和2。再導(dǎo)入數(shù)據(jù)。
后話:
Sybase自增字段有個***的問題是,再移植數(shù)據(jù)庫時,如果是按自增主鍵進行關(guān)聯(lián)的數(shù)據(jù)表,在數(shù)據(jù)重新導(dǎo)入后,可能出現(xiàn)主從表的外鍵無法關(guān)聯(lián)的情況,我是開始時沒預(yù)料到這樣的情況,現(xiàn)木已成舟,沒有辦法了。 以后還是要慎用自增字段作為主鍵。
當(dāng)前標(biāo)題:Sybase自增字段跳號的解決方法
瀏覽路徑:http://www.dlmjj.cn/article/dhhedoj.html


咨詢
建站咨詢
