回答
看起來像你的ID
列是一個IDENTITY列 - 它們將總是添加下一個值(不管是否刪除)。
有一個特定的ID的要求聽起來像你的應用程序設計依賴於它,這是不好的做法。 ID字段確實有差距(這是正常的) - 您的應用程序不應該依賴它們。
無論如何,這裏有幾個這樣做的方法:
對於一次性的,使用SET IDENTITY INSERT ON
:
SET IDENTITY INSERT dbo.myTable ON
INSERT INTO myTable
(ID, NAME)
VALUES
(1, 'H')
SET IDENTITY INSERT dbo.myTable OFF
要重新播種,你需要使用一個DBCC CHECKIDENT
命令,使用RESEED
:
DBCC CHECKIDENT('myTable', RESEED, 0)
一個簡單的方法是將
TRUNCATE TABLE mytable;
代替
DELETE FROM mytable
從TRUNCATE TABLE (Transact-SQL)
如果表包含標識列,該列的計數器復位到用於列定義的種子值。如果未定義種子,則使用默認值1。要保留身份計數器,請改爲使用DELETE。
的順序插入+1,以便更聰明地使用DELETE + DBCC CHECKINDENT – InSane 2010-12-10 10:05:02
我想你想重新啓動1自動生成的id列的值? 如果它是標識列,可以將種子值與德以下命令
DBCC CHECKIDENT('YourTableNameHere', RESEED, 0)
我假設你有你的ID列作爲一個標識列,復位,要重置它在1再次啓動,從表中刪除所有行後。
首先,我想說有這樣一個需求(ID值從1開始)往往意味着你在做什麼有什麼問題 - IDENTITY列的編號總是有空位,應該是視爲不透明的斑點。它們似乎是整數,並且容易記住的事實僅僅是實現細節。
第二,如果你想要做這樣的重置,你會使用DBCC CHECKIDENT
編輯
如果你確實依賴於這些ID值(比方說,因爲他們」重用也在應用程序中使用),這是一個很好的指示器,列首先不應該具有IDENTITY屬性。不幸的是,你不能直接刪除這個屬性 - 你不得不創建沒有這個屬性的表的副本,複製所有的行,刪除原始表,並重命名副本。管理工作室會假裝你可以刪除該財產,但會做我剛纔在幕後描述的。
數據庫ID功能旨在確保不同的記錄永遠不會有相同的ID。這不僅對於同時存在的記錄有效,而且對於在刪除另一個之後插入的新記錄也是有效的。這對避免衝突非常有用。雖然它似乎有時會打破一些人的品味,但並不能解決它。
如果您需要將自選號碼分配給記錄,請添加另一列。自動索引列應始終使用。其他用戶告訴你如何擺弄索引,但非常小心地使用這個功能。
- 1. 在ADO記錄集中插入空值
- 2. 從表中插入記錄
- 3. 插入表中的記錄
- 4. 如何在pl/sql中正確使用記錄表和記錄表插入表
- 5. 如何在GridView中插入記錄
- 6. 如何插入一條記錄到表
- 7. 在表中如何在rails3.0中一次插入多個記錄?
- 8. 如何在codeigniter活動記錄中使用select插入記錄
- 9. 如何在任何表的中間插入新記錄
- 10. 在asp.net中插入記錄
- 11. 如何在Flask Eve中插入有記錄和列表的記錄?
- 12. 如何在特定表格中插入記錄?
- 13. Codeigniter 2.0如何在兩個表中插入記錄
- 14. 如何在多對多關係表中插入記錄?
- 15. 如何在使用光標的現有表中插入記錄
- 16. 如何在表格中插入用戶名記錄
- 17. 如何在div下插入記錄?
- 18. MYSQL表2中的表1更新記錄插入新記錄
- 19. 如何使用JDBC創建表和插入記錄到表中?
- 20. 如何將一張表中的記錄插入第二張表
- 21. MySQL表在數據之前插入空記錄
- 22. 插入記錄
- 23. 插入記錄的外國表中JPA
- 24. C#如何:如果新的記錄被插入到mysql表中
- 25. 根據同一表中的'主'記錄在表中插入記錄
- 26. 檢查表是否沒有記錄,然後在表中插入3條記錄
- 27. 如何在插入新記錄到postgresql表時調用序列?
- 28. (MYSQL)如何插入記錄只有當它不存在於表
- 29. 如何插入記錄的N個表在單個命令
- 30. 如何檢索表中的yesteraday插入記錄?
@InSane,標識列是ID,我想通過ID(1,2,6,7,8 ...) – ozkank 2010-12-10 09:54:51