回答
SET IDENTITY_INSERT [YourTableName] ON
--do your update/insert query here
SET IDENTITY_INSERT [YourTableName] OFF
我認爲說'SQL SERVER 2010'是一個錯誤。這是他的要求的解決方案,它適用於SQL SERVER 2000及更高版本。 [SET IDENTITY_INSERT - MSDN](http://msdn.microsoft.com/zh-cn/library/aa259221(v=sql.80).aspx) – Kaf 2012-03-12 18:00:50
我會給你回覆某人從你身上拿走的+1 ,因爲你確實回答瞭如何重用身份值的問題。然而,上面提到的關於這樣做(和毫無意義)的危險的觀點不應該被忽視。 – 2012-03-12 18:22:07
@AaronBertrand - 感謝和對待! – Kaf 2012-03-12 18:34:26
您需要補種的身份:
dbcc checkident (mytable, reseed, 30)
但是** **可能會導致重複,如果值高於例如在你的示例中有30個存在! **這個操作非常小心**!將一個IDENTITY重新轉換爲一個給定的值,不會**跳過比已重置值高的現有值 - 這是一種常見的誤解! – 2012-03-12 17:35:28
這是對的,爲什麼?因爲IDENTITY屬性本身並不強制執行唯一性。我在這裏發表了一些關於IDENTITY列的類似誤解:http://sqlblog.com/blogs/aaron_bertrand/archive/2012/02/27/bad-habits-to-kick-believing-everything-you-hear-or-read .aspx – 2012-03-12 17:56:37
你能解釋爲什麼你關心是否有差距的身份專欄?如果您只想在標籤旁邊添加一些漂亮的ID號碼(並且不擔心其他表格中的相關數據,或者即使刪除了ID 1,第二行是否保留ID 2),您始終可以導出這些無意義的ID號碼在運行時,例如
SELECT col, MeaninglessID = ROW_NUMBER() OVER (ORDER BY col)
FROM dbo.table
ORDER BY col;
我剛剛意識到這是我的第1,000個答案。 – 2012-03-12 18:44:44
WOOOHOOOO !!! ;-)恭喜 - 期待數以千計:-) – 2012-03-12 20:02:57
謝謝馬克,我有很多方法可以抓住你。 :-) – 2012-03-12 20:10:17
- 1. 如何從表中刪除標識列
- 2. 刪除TFS 2010中的孤立標識
- 3. 刪除標識值
- 4. 將行標識爲排除了某些列中的更改
- 5. 如何通過標識刪除SQL Server中的一行?
- 6. 瀏覽頁面標識除了某些標識 - laravel
- 7. C#在gridview中標識行以刪除
- 8. 在刪除行後重用標識值
- 9. SQL:刪除,除了
- 10. 增加SQL Server中標識列的值而不刪除並重新創建表
- 11. 刪除陣列中的第一級標識符
- 12. strtok刪除我的字符串,除了第一個標記
- 13. 刪除另一個SQL Server 2008的標準中的一列
- 14. 在vb 2010刪除列標題快遞
- 15. Plone:processForm()刪除了我的Archetype字段
- 16. 從表中的列中移除標識
- 17. SQL Server不會讓我做列標識
- 18. 如何刪除插入表中標識列的重複值?
- 19. 刪除了一些列的熊貓數據幀在一行
- 20. SQL Server和標識列中的空白
- 21. SQL Server中的列標識符
- 22. SQL Server將列轉換爲標識列
- 23. 如何讓git認識到我刪除了一個文件?
- 24. 如何刪除除了一些使用Nokogiri以外的所有標籤
- 25. 從SQL Server數據庫中的所有表數據刪除,除了一些表
- 26. 使用SSIS的標識列
- 27. 從數據庫表的所有標識列中刪除[不適用於複製]
- 28. Xcode 8.3 - 本地刪除包標識符?
- 29. dir - 列出除了一些
- 30. 節點標識,同時刪除
沒有SQL Server版本** 2010 ** ....你在用什麼?另外:**爲什麼**麻煩重新循環那些使用的身份值?你從中得到什麼?看起來好像很多工作沒有好處,真的...... – 2012-03-12 17:34:35
重用身份值是一個非常糟糕的主意。 YOu永遠不能依賴身份不要跳過值(即使你回滾查詢也會使用它們),所以沒有任何理由試圖重用它們。如果您的相關表格沒有定義的PK/FK結構(您不應該這樣做),將新數據與舊數字相對應會將錯誤記錄與它們聯繫起來,因爲這些舊記錄不會與父記錄一起刪除。 – HLGEM 2012-03-12 17:48:11