SQL Server主鍵溢位解決方法

2021-10-03 20:31:23 字數 600 閱讀 4157

背景:sql server中我們建立表結構時,通常設定主鍵欄位為 整數非空 型別

id	int not null identity(1, 1) primary key,
正常情況下資料很少會達到2 147 483 647(21億條資料)這個最大值,但很少不等於沒有,我第一次遇到這種情況時第一時間懷疑人生,乙個簡單的insert語句我不會寫了?

ps:當你發現自己的insert語句提示無法寫入int型別巴拉巴拉的報錯時,檢查你的自增主鍵最大值!

解決方案:

1,清空表資料,直接將資料 truncate 掉

2,修改字段型別為 bigint

3,當已經對舊資料歸檔,但是需要保留最近一段時間的資料時,重置標識列的值---dbcc checkident(『表名』,reseed,指定的重置值)

eg:

dbcc checkident('mytable', reseed, 0)   --自增列從重新從1開始增長(前提是這些資料已經歸檔刪除)
實際開發中,對於資料量比較大的表,可以考慮建立分表,例如一千萬條資料分為5張表儲存,再建立第六張表索引資料對應的表,在條件查詢時可以有效提高查詢效率

sql server 定義主鍵

drop table father create table father id int identity 1,1 primary key,name varchar 20 not null,age int not null drop table mother create table mother ...

SqlServer 修改主鍵總結

一.查旬乙個表有哪些主鍵 1 exec sp pkeys table name 表名 可以按資料庫中表的順序顯示 2 select table name,column name from information schema.key column usage where table name 表名 ...

sqlserver 資料分頁 多個主鍵

在sqlserver中,資料庫的分頁一般結合top 和 not in 來實現,但這必須是表中只有乙個主鍵,如果有多個主鍵該怎麼做呢 現在有乙個表a 裡面有欄位 name schoolyear text 其中name 和 schoolyear為主鍵 如果要查詢 pagesize 條資料,第 page ...