我有SQL Server 2008中的表。它有empId,它是類型的int。現在不是身份。我想編寫查詢(以便我可以維護數據庫中的更改記錄)將此列作爲標識列。該表目前沒有數據。SQL查詢表上的身份密鑰
1
A
回答
3
它可以做到但不容易。據this article,如果你通過SSMS做到這一點,然後生成一個腳本,基本上是:
- 作爲 例1中創建類似的表結構,說Tmp_Example1與 標識列。
- 集IDENTITY_INSERT ON的新表 只是created.Step 3:從插入到示例1所有Tmp_Example1值
- SET IDENTITY_INSERT OFF上 Tmp_Example ..
- 跌落例1(這是怎麼回事... 下探我們原來的表???)
- 將Tmp_Example1重命名爲Example1。 提交事務
如果這個表不具有任何數據就像你說的,那麼你可能會更好過只是這樣通過SSMS(我的文章鏈接中提供的步驟)。你有沒有理由使用SQL來做這件事?
UPDATE
我讀an article其他用戶發佈的時間較早,發現這裏面似乎比我上面的方法要容易得多:
ALTER TABLE SOURCE_TB ADD ID_II INT IDENTITY(1,1)
ALTER TABLE SOURCE_TB DROP COLUMN ID
EXEC sp_rename 'SOURCE_TB.ID_II' ,'ID','COLUMN'
但同樣,這可能更有意義做這通過SSMS。不過很高興知道...
1
您沒有數據,因此將表格編寫爲drop並重新創建。將該字段更改爲Employeeid int identity(1,1)不爲null。然後重新創建表格。沒有大驚小怪。
相關問題
- 1. Cookie或RESTful密鑰的身份驗證?
- 2. 帶密鑰的身份驗證用戶
- 3. 應用程序身份驗證密鑰
- 4. 用於身份驗證的Linux密鑰表文件
- 5. SQL Server:無法在應用表身份標識密鑰後保存更改
- 6. ORACLE SQL查詢 - 爲NOT EXISTS測試密鑰列表?
- 7. 使用查詢字符串加密的REST API身份驗證
- 8. 解析REST API密鑰中斷客戶端密鑰身份驗證
- 9. SSH密鑰在Gitlab上詢問密碼
- 10. 解密SQL查詢
- 11. 如何在Web API中使用Api密鑰進行使用表單身份驗證的服務身份驗證
- 12. 命名郵局密鑰的動態SQL查詢
- 13. SQL查詢從密鑰連接的兩行中獲取數據
- 14. 如何查詢cassandra的一組密鑰?
- 15. 關於孩子的密鑰查詢
- 16. 從JSON查詢相應的密鑰
- 17. 只使用密鑰進行查詢,使用密鑰
- 18. Node.js:使用唯一公鑰對客戶端進行身份驗證(與Github SSH密鑰身份驗證類似)
- 19. 每個商業交易和身份密鑰的NHibernate對話
- 20. 不同設計模型中的不同身份驗證密鑰
- 21. keyref'ruleSet_202'未解析爲身份約束的密鑰
- 22. 爲什麼computingMap支持equals()的密鑰身份相等?
- 23. 使用私有RSA密鑰在libcurl中的SFTP身份驗證
- 24. 具有弱密鑰和身份哈希的ConcurrentHashMap?
- 25. PCSC C#加載不帶智能卡的身份驗證密鑰
- 26. 智能卡中的身份驗證密鑰
- 27. 實體框架 - SaveChanges()沒有得到生成的身份密鑰
- 28. 將舊的Facebook身份驗證密鑰遷移到access_token
- 29. 針對SQL Server的Windows集成身份驗證查詢
- 30. laravel 5.3更改身份驗證的SQL查詢
+1好一個............... – 2010-09-21 05:53:19
@Pranay,我正在閱讀你之前發佈的文章,他們有我在我的更新中發佈的代碼,似乎工作。我認爲你的解決方案中有不同於此的東西? – 2010-09-21 05:55:15
我同意這一點,但一些我想更新現有的列。我知道這樣做不會有什麼影響,但是。想要純粹的改變表格,並且想要設置標識。這是錯誤的 - 然後重新創建。 sql服務器必須有這樣的設施才能將列屬性更改爲標識。 – 2010-09-21 06:02:27