如果没有插入值,如何为 SQL Server 中的列字段分配唯一值?
Posted
技术标签:
【中文标题】如果没有插入值,如何为 SQL Server 中的列字段分配唯一值?【英文标题】:How can i allocate a unique value to a column field in SQL Server, if no value is inserted? 【发布时间】:2011-04-04 08:26:44 【问题描述】:如果没有插入值,我如何为 sql server 中的列字段分配唯一值? 我可以在 sql server 中设置一些值吗?我不想让它成为标识列,因为有时可能会从前端插入记录。但并非总是如此,在这种情况下,该列应自动具有该列中不存在的唯一值。
【问题讨论】:
【参考方案1】:您可以使用 Guid,并将列的默认值设置为 newid()
。
【讨论】:
我如何在后端使用它,有什么想法吗? 如果您从应用程序向表中插入数据,您可以省略 PK,因为它会自动创建。【参考方案2】:GUID 是一个不错的选择。具体来说,您可以阅读 COMB,这是一种性能优于普通 GUID 的 GUID。
还有一个你可能会觉得有用的话题:
Performance value of COMB guids
【讨论】:
【参考方案3】:您至少有 3 个选项:
-
将其设为 IDENTITY 列,并使用
SET IDENTITY_INSERT
(see link) 允许您在有值时插入值。
使用函数设置default value。
如果字段为空,请使用“AFTER INSERT”触发器更新字段。
【讨论】:
对不起 - 我搞砸了链接。请参阅我添加的链接。基本上,这是一种允许您将指定值插入标识列的方法。 不,它不起作用,我已经有一个列集标识列。我需要其他解决方案。以上是关于如果没有插入值,如何为 SQL Server 中的列字段分配唯一值?的主要内容,如果未能解决你的问题,请参考以下文章
如何为每个表计算由 SQL Server 中未指定数量的表共享的列中的不同值?
如何为包含所有存储行的现有 SQL Server 表生成 INSERT 脚本?