2010-12-07 27 views
6

想知道在超過2147483647記錄後實際發生了什麼嗎?Int主鍵 - 超出int範圍

+3

讓煙冒出來 – 2010-12-07 18:30:34

+1

很容易測試 - 創建一個IDENTITY列種子在2147483646,然後添加兩個記錄! :-) – 2010-12-07 18:31:57

回答

12

嘗試一下

CREATE TABLE #tester (
    testerid INT IDENTITY(1, 1) not null CONSTRAINT pk_tester 
    PRIMARY KEY CLUSTERED) 

DBCC checkident(#tester, reseed, 2147483647) 

INSERT #tester DEFAULT VALUES 
INSERT #tester DEFAULT VALUES 

消息8115,級別16,狀態1,行1個
算術溢出錯誤IDENTITY轉換爲數據類型int。

What To Do When Your Identity Column Maxes Out見速戰速決

1

許多人忘了有消極的一面爲int比積極的一面更大的一個。如果你認爲你可能會超過積極的int值,那麼只需在-2,147,483,648範圍的負數端開始你的身份。或者真正使用新的DBA開始在2,147,483,647和步驟-1。

1

如果您認爲可能會使用更大範圍的數據類型。例如NUMERIC或BIGINT。