我有一個表,其中我有一個INT IDENTITY(1,1)PRIMARY KEY字段,並在其旁邊有一個UNIQUEIDENTIFIER字段,我希望在表上每次插入時自動分配這個字段。我嘗試設置DEFAULT NEWID(),但它只在我做的時候才起作用INSERT INTO TableName VALUES (DEFAULT, a, b, c, d, ...).
我希望能夠做到的是我NSERT INTO TableName VALUES (a, b, c, d, ...)
和UNIQUEIDENTIFIER字段被自動分配,就像主鍵字段一樣。那可能嗎?請不要這樣,儘管這是一個有效的做法,但我不希望將該字段作爲(表的一部分)主鍵。是否可以在每次插入時自動分配一個UNIQUEIDENTIFIER字段?
2
A
回答
4
使用列名單,然後和省略PK,GUID列
INSERT INTO TableName (col3, col4, col5, ...)
VALUES (a, b, c, d, ...) a
周圍使用缺少列列表,這是最好的做法反正默認的作品。例如,如果您重新排序或添加列,該怎麼辦?並使用觸發器不是最佳的或可伸縮性
編輯:使用觸發器是一種解決方案,以避免最佳實踐...並不會規模太好
+0
可能更好地說「改變PK」而不是忽略它 - 他可能會認爲沒有PK /聚集索引的表是可以的。 – 2012-06-30 02:04:19
0
應當在表模式的默認值。因此,在設置默認值後,您無需擔心該列。
打開表格設計窗口並選擇應該佔據GUID信息的列。欲瞭解更多信息,請參閱下面的屏幕截圖。
因此,通過設置(NEWID())作爲默認值將讓你插入的記錄,而無需在INSERT語句中包含此列名。
請讓我知道任何混亂
1
GBN是正確的情況下。我只需添加其他幾點就可以考慮。
如果你的桌子上有一個唯一的ID,那麼你爲什麼要或需要一個UNIQUEIDENTIFIER?你應該選擇一個或另一個作爲你的PK,但不能兩個都選。另外,在爲數據庫選擇默認值時,請選擇NEWSEQUENTIALID()而不是NEWID()。
相關問題
- 1. 在表中插入值時,UNIQUEIDENTIFIER是否爲自動生成的數字?
- 2. 是否可以告訴IDLE python shell每次啓動時自動導入模塊?
- 3. jqgrid:是否可以爲每個'n'記錄插入一個區段彙總欄?
- 4. 插入一個自動增量字段
- 5. 是否可以每x分鐘自動打開一次Android應用程序?
- 6. 每當創建帖子時分配一個自定義字段
- 7. 是否可以在DynamoDB中插入嵌套字段?
- 8. 是否有可能是一個自動增量字段重複?
- 9. 是否可以在每個HTTP響應中插入X-Frame-Options?
- 10. 是否可以自動記錄每個輸入到一個函數?
- 11. 如何在Sql Server中插入查詢時自動生成UniqueIdentifier?
- 12. 是否可以安排一個自動任務在特定終端中每小時運行一次?
- 13. 您是否可以自動在Visual Studio片段中插入名稱空間?
- 14. Joomla是否可以定期自動執行一個插件
- 15. 是否可以在C++中動態分配一個臨時變量?
- 16. 是否可以動態分配一個向量?
- 17. 是否可以在每個字段的KendoUI ListView中分別進行編輯?
- 18. 是否可以在SQLAlchemy中創建Column,並在上次插入/更新時自動填充時間?
- 19. 是否可以覆蓋一個字段的字段限制在一個子類
- 20. mysql是否可以插入到插入?
- 21. 是否可以在一次調用中「解開」一個字典?
- 22. 是否可以限制每個分段的點數
- 23. 是否可以創建一個動態計算的字段?
- 24. Enum#values()是否在每次調用時分配內存?
- 25. 是否可以爲每個項目安裝一個Vagrant插件?
- 26. 是否可以在WebGL中每次繪製調用時運行一次代碼?
- 27. 如何使用JavaScript循環一個長字符串以在每次匹配後插入一個新字符串
- 28. iOS是否可以在特定日期和時間自動插入記錄?
- 29. 可以通過配置在讀取/插入時自動大寫一列嗎?
- 30. 是否可以將一個方法插入一個List <>?
該字段是否可以空? – 2011-05-26 09:26:48
否...它必須始終與NULL不同。 – Miguel 2011-05-26 09:27:17
你有沒有考慮過觸發器? – 2011-05-26 09:30:29