如果没有插入值,如何为 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数据库中的所有表创建触发器

如何为xml节点sql server选择每个值

如何为包含所有存储行的现有 SQL Server 表生成 INSERT 脚本?

SQL Server Profiler:如何为“不喜欢”列过滤器指定多个值

如何为 int 列插入 None/Null 值?