我有一个表,其中我有一个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. 是否可以告诉IDLE python shell每次启动时自动导入模块?
- 2. 插入一个自动增量字段
- 3. jqgrid:是否可以为每个'n'记录插入一个区段汇总栏?
- 4. 是否可以每x分钟自动打开一次Android应用程序?
- 5. 我可以为自己分配一个刚插入的ManagedObject吗?
- 6. 是否可以在DynamoDB中插入嵌套字段?
- 7. 是否可以自动记录每个输入到一个函数?
- 8. 是否可以在每个HTTP响应中插入X-Frame-Options?
- 9. 如何在Sql Server中插入查询时自动生成UniqueIdentifier?
- 10. 您是否可以自动在Visual Studio片段中插入名称空间?
- 11. Joomla是否可以定期自动执行一个插件
- 12. 是否可以在C++中动态分配一个临时变量?
- 13. 是否可以在每个字段的KendoUI ListView中分别进行编辑?
- 14. 是否可以在一次调用中“解开”一个字典?
- 15. 是否可以限制每个分段的点数
- 16. Enum#values()是否在每次调用时分配内存?
- 17. mysql是否可以插入到插入?
- 18. 是否可以在WebGL中每次绘制调用时运行一次代码?
- 19. 是否可以将一个Id分配给一个asp:MenuItem?
- 20. 每次将元素插入到std :: list容器中时,是否会发生动态分配?
- 21. 是否可以自动生成插入外键
- 22. 是否可以分配给一个HTML表单输入一个Java String的值?
- 23. C++是否可以将fstream对象设置为在每次调用<<时自动写入换行符?
- 24. 自动插入WordPress自定义字段
- 25. 属性@JSONIgnore是否可以在每次调用时设置?
- 26. 是否可以插入一行,但只有当值不存在时才可以插入一行?
- 27. 是否可以在其自己的类中隐藏一个字段(或只是操作/隐藏自动完成)?
- 28. 是否可以分配给$!在Perl中?
- 29. 是否可以从ModelMetaData.Properties动态创建输入字段?
- 30. 是否可以在输入类型=“数字”中插入符号
该字段是否可以空? – 2011-05-26 09:26:48
否...它必须始终与NULL不同。 – Miguel 2011-05-26 09:27:17
你有没有考虑过触发器? – 2011-05-26 09:30:29