首页 > 解决方案 > 如何在每条记录中创建唯一的哈希字节值

问题描述

CREATE TABLE [dbo].[test]
(
    [GroupID] [NVARCHAR](255) NULL,
    [PromoNUM] [FLOAT] NULL,
    [P_key] AS (HASHBYTES('md5', 'Sample String to hash ')) PERSISTED
) ON [PRIMARY]

p_key值在表中的每条记录中必须是唯一的

标签: sqlsql-server

解决方案


如果您想在每条记录中使用唯一值,请使用identity

CREATE TABLE [dbo].[test] (
    TestId IDENTITY(1, 1) NOT NULL PRIMARY KEY,
    [GroupID] [NVARCHAR](255) NULL,
    [PromoNUM] [FLOAT] NULL
) ON [PRIMARY]

您不能保证散列值是唯一的。您可以安排事情,使碰撞的可能性非常非常低。但对于独特性,这可能还不够好。

因此,只需使用标准方法IDENTITY. 或者,如果您想要一个不连续的值,请使用NEWID()(但是——我建议不要将它用于聚集索引)。


推荐阅读