1. 怎樣在sql2005中重置自動編號
在SQL Server中,要將表中的自動編號ID重新開始排列有兩種方法:
方法1:
truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的欄位。
truncate table jsq
方法2:
delete from 你的表名?
dbcc checkident(你的表名,reseed,0) 重新置位identity屬性的欄位,讓其下個值從1開始?
truncate命令不但會清除所有的數據,還會將IDENTITY的SEED的值恢復到原是值。
而DBCC CHECKIDENT則更加方便一些,可以在不刪除數據的情況下指定SEED的值。
1. truncate table tablename
2. DBCC CHECKIDENT (tablename,reseed,1)
2. 如何手動重置sql 主鍵ID
怎麼重置有標識的主鍵,有時主鍵ID,設置自動增量後,要怎麼重置:如 ID 主用用到SQL的這個功能: dbcc checkident(test, reseed, 0)
3. SQL Server 命令dbcc checkident(表名,reseed,0) 有的表1開始 有的0開始為什麼怎麼讓他都從1開始
1、語句是起效的。如果是reseed, 0,則新的ID將為0;
如果都寫dbcc checkident(表名,reseed,1) ,是不是從1開始 -- yes
2、此語句只是設置了新的計數器,對於表中已經有的記錄,不作改變;
3、新的seed,盡量>表中已有記錄的最大值(該ID欄位)。否則,不斷運行,有可能出現「重復值」錯誤
4、如果想循環使用,通常使用mod運算符來處理,並及時刪除過期數據
4. 怎樣清空SQL SERVER資料庫,清空後讓表的ID自增列從1開始
SQL Identity自增列清零方法
1.使用DBCC控制台命令:
dbcc checkident(表名,RESEED,0)
2.truncate table 也可將當前標識值清零
但當有外鍵等約束時,無法truncate表
可以先禁用外鍵約束來truncate表:
--禁用外鍵約束
exec sp_msforeachtable 'alter table ? nocheck constraint all'
--清空數據
truncate table 表名
--啟用外鍵約束
exec sp_msforeachtable 'alter table ? check constraint all'
我常用 truncate table 進行數據表內數據的清空,同時將ID列重新開始計數!
truncate table 課程表
truncate table 學生表
truncate table 選課表
5. SQL資料庫列自動生成編號
兩種方法:
1、用Truncate
TRUNCATETABLEname可以刪除表內所有值並重置標識值
2、用DBCC CHECKIDENT
DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,
但如果表內有數據,則重設的值如果小於最大值可能會有問題,這時可以用 dbcc checkident("bc_pos",reseed)即可自動重設值。
注意:
只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。
(5)sqlcheckident擴展閱讀:
關於上述標識列的引用
如果在SQL語句中引用標識列,可用關鍵字IDENTITYCOL代替,例如,若要查詢上例中ID等於1的行,
以下兩條查詢語句是等價的:
1、SELECT * FROM T_test WHERE IDENTITYCOL=1
2、SELECT * FROM T_test WHERE