SQL Server 自增欄位歸零等問題
今天在學習SQL Server 2005時遇到了這麼一個問題:練習建立了一個表Person,有5個欄位,設定ID為主鍵,同時設為自增,如圖
在多次插入資料後,自增的ID號比較混亂,而且刪除資料後,自增的ID並不會歸零,經過多方查閱,瞭解到有兩種方法可以控制自增的欄位:
方法一: 如果曾經的資料都不需要的話,可以直接清空所有資料,並將自增欄位恢復從1開始計數
truncate table 表名
方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 當前值設定為 new_reseed_value。如果自建立表後沒有將行插入該表,則在執行 DBCC CHECKIDENT 後插入的第一行將使用 new_reseed_value 作為標識。否則,下一個插入的行將使用 new_reseed_value + 1。如果 new_reseed_value 的值小於標識列中的最大值,以後引用該表時將產生 2627 號錯誤資訊。
方法二不會清空已有資料,操作比較靈活,不僅可以將自增值歸零,也適用於刪除大量連續行後,重新設定自增值並插入新的資料;或從新的值開始,當然不能和已有的衝突。
當表中有了一下資料後
執行語句 DBCC CHECKIDENT ('dbo.Person', RESEED, 10) 後再通過Management Studio新增資料時,ID就會自動從11開始,也就是new_reseed_value+1開始
相關文章
- SQL Server 自增欄位重置SQLServer
- SQL Server 2005裡設定自增欄位SQLServer
- SQL Server中根據某個欄位,ID欄位自動增長的實現SQLServer
- 解決SQL Server中CHAR欄位空格問題SQLServer
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- oracle 時間欄位自動更新問題Oracle
- sql server如何檢視欄位註釋?SQLServer
- 細說SQL SERVER中欄位型別SQLServer型別
- oracle中如何指定表欄位自增Oracle
- oracle和mysql設定自增欄位OracleMySql
- SQL Server 查詢表註釋和欄位SQLServer
- MySQL 大欄位問題MySql
- SQL Server 2008 中SQL查詢語句中欄位值不區分大小寫問題處理SQLServer
- SQL Server複製的表中如何修改欄位SQLServer
- sql server中對日期欄位值的比較SQLServer
- Laravel Tips:指定自增欄位起始值Laravel
- 資料庫欄位問題資料庫
- SQL INSERT INTO 語句詳解:插入新記錄、多行插入和自增欄位SQL
- 在SQL Server中修改欄位型別和欄位名稱的儲存過程SQLServer型別儲存過程
- SQL Server中獲取資料庫名、表名、欄位名和欄位註釋的SQL語句SQLServer資料庫
- 觸發器—一個表插入資料時其他欄位同步自增長欄位觸發器
- 獲取sql server 2008表欄位資訊SQLServer
- sql server 修改欄位名,檢視指定表是否存在SQLServer
- 基於MySQL自增ID欄位增量掃描研究MySql
- SQLServer中如何刪除欄位的自增標識SQLServer
- Oracle 基本操作之 建立自增欄位方法-ORACLE SEQUENCEOracle
- sql server left join問題SQLServer
- 如何自動填充SQL語句中的公共欄位SQL
- 小議SQL Server主鍵和自動編號問題SQLServer
- 如何處理sql server中的image型別的欄位?SQLServer型別
- innodb引擎對自增欄位(auto_increment)的處理REM
- ORACLE9I中建立自增欄位的方法(轉)Oracle
- SQL新增表欄位SQL
- 安裝64位11gR2 Gateway訪問32位MS SQL-Server遇到的問題GatewaySQLServer
- SQL Server常見問題收集SQLServer
- sql server死鎖的問題SQLServer
- SQL Server許可權問題SQLServer
- MySQL多個timestamp欄位自動新增預設值的問題MySql