pCloud Partner Program

'checkindent'相關日誌共 1 篇

  1. 2008/07/14 當identity到達該欄位上限時...

當identity到達該欄位上限時...

程式技術/Database 2008/07/14 19:07
views: 162056 times
今天在整理資料庫時, 發現有個 table 的 identity 欄位, 即將到達上限囉. 於是便來著手研究一下會發生什麼問題.

LAB 狀況 Microsoft SQL Server 2005, 某 table 的 identity 欄位為 tinyint, 並進行 insert 測試.

狀況 1, tinyint 為 (0~255), 若於資料已屆 255 時, 再 insert 資料會發生下面錯誤 (exception):
"轉換 IDENTITY 到資料類型 tinyint 時發生算術溢位錯誤。
發生算術溢位。"

狀況 2, 先將前面 < 100 的資料刪除, 再利用 dbcc checkident('table_name', RESEED, 20) 指令執行後, 重置 identity 值 (下一筆會由 21 開始), 再進行 insert, 則可以正常 insert (dbcc checkindent 資料可以看這篇文章: SQL Server的Identity欄位使用/複製/重設 )

狀況 3, 繼續再進行 insert, 直到 99 時, 再繼續 insert 會發生 primary key violation 的錯誤.

由以上狀況可知, 一旦發生 identity 到該欄位上限時, 將會發生無法寫入資料的狀況, 而且是以算術溢位錯誤的方式發生, 一旦造成, 會有極嚴重的問題, 一定得在發生之前規劃好, 以免造成問題!


top




DJI OM 4 折疊式手機雲台 手持穩定器(先創公司貨)
【SONY 索尼】2.1 聲道單件式環繞音響(HT-X8500)
ASUS 華碩 RT-AC68U 雙頻AC1900 無線網路分享器
TEAM十銓 L5 Lite 3D 1TB 2.5吋 SSD固態硬碟
統一 番茄汁(6入/組)
UNITEK TYPE-C 轉VGA/HDMI/PD充電/HUB 鋁合金多功能轉接器
亞果元素 CASA Hub VH1 Type-C 轉 VGA - HDMI二合一顯示轉接器
realme XT (8G/128G) 6.4吋6400萬畫素 四鏡頭鷹眼猛獸
DJI Mavic Mini 暢飛套裝
全新原彩Apple MacBook Air 13吋/i5/8G/256G
DJI Mavic Air 2 全能套裝 [先創公司貨]預購-送記憶卡
Patriot美商博帝 BURST 960G 2.5吋 SSD固態硬碟


 Waiting...