我們有一張表,主鍵爲auto-increment int
,其最大值現在處於T-SQL int
類型的限制範圍內。當我們嘗試對錶格進行重新播種時(因爲按鍵中存在很大的間隙,遠遠不及最接近的行數),它以某種方式不斷重置爲最大值。當主鍵溢出時,你會做什麼?
很明顯,這會導致嚴重的問題。 PK永遠不應該得到這個值,改變數據類型將是一項重大任務。重播應該足夠了,但它不起作用!
它如何不斷重置?
編輯:爲了澄清情況,此查詢SELECT MIN(CategoryID), MAX(CategoryID) FROM dbo.tblCategories
返回-2147483647,21147483647 ...意味着在類型的最小值和最大值處有實際的PK值。
什麼是最大的使用價值?我的猜測是,它是存儲在int中的最大值。 – 2011-04-28 15:26:02
我明確了這個帖子。 – 2011-04-28 15:34:55
如何重新填充列,是否運行DBCC CHECKIDENT(TABLE_NAME,RESEED,NEW_SEED_VALUE)?也許你的身份提升值很高,你有沒有注意到你數據中的差距? – 2011-04-28 15:38:37