程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> Sybase自增字段跳號的解決方法

Sybase自增字段跳號的解決方法

編輯:SyBase教程

Sybase自增字段是我們經常遇到的問題,下面就為您分析Sybase自增字段跳號的原因,並給出解決的方法,希望能夠幫助到您。

Sybase自增字段跳號原因及影響:

在Sybase數據庫中如果數據庫在開啟的情況下,因為非正常的原因死機、斷電)而導致數據庫服務進程強制結束。

那麼自動增長的字段將會產生跳號的情況,再往數據表裡面插入記錄時,自增字段會跳到一個相當大的值上面,以至於主鍵的自增值極有可能被用盡,或由於數值太大,應用程序中的數據類型如int型等已無法容下這麼大的值,而無法在程序裡面進行相關的操作。

Sybase自增字段調號解決辦法:

如果還未發生過跳號情況,可按如下辦法解決:

1.執行
select 'sp_chgattribute ' + name + ', ''' + 'identity_gap' + '''' + ', 60 go'
 from sysobjects
 where type='U'】。
其中的60是憑感覺給的一個值,一般來說這個值越大性能越好,但越大,再發生數據庫服務進程非正常結束時,所跳的號也就越大。

2.對1執行的結果,拷貝到SQL編輯區域,再執行。
若已經發生跳號,需要將表中數據導出,再重建數據表,再執行1和2。再導入數據。

後話:

Sybase自增字段有個最大的問題是,再移植數據庫時,如果是按自增主鍵進行關聯的數據表,在數據重新導入後,可能出現主從表的外鍵無法關聯的情況,我是開始時沒預料到這樣的情況,現木已成舟,沒有辦法了。 以後還是要慎用自增字段作為主鍵。

帶您了解Sybase系統表

sybase數據庫備份的兩種方式

深入探究SYBASE數據庫日志

Sybase建立索引的原則

sybase數據庫備份的兩種方式

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved