给行组唯一标识符SQL

时间:2013-02-07 11:36:39

标签: sql sql-server tsql

快速提问,我有一个表格,其列是一组行的标识符。例如,一组记录客户交易的行,其中每一行都有客户参考。

我想要实现的是为该组行提供一个新的唯一标识符,因此我可以匿名报告。

我尝试了什么

 UPDATE dbo.[t_Health]
   set Code = 'ABC' + Cast(RAND() as varchar(50))
     where si.CustRef= si.CustRef

非常感谢!

2 个答案:

答案 0 :(得分:3)

您可以使用任何一个Hashing函数。

示例

UPDATE dbo.[t_Health]
SET Code = hashbytes('SH2_512', CAST(CustRef AS VARCHAR(16))  

答案 1 :(得分:2)

要创建新的唯一标识符,请使用NEWID()函数

with    anonymousId as (
        select  distinct CustRef,
                newid() as newId
        from    t_health)
update  dbo.t_health
set     code = ai.newId
from    dbo.t_health h join anonymousId ai on h.custref = ai.custref