2

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

我想要实现的是给那组行一个新的唯一标识符,这样我就可以匿名报告它。

我试过的

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

非常感谢!

4

2 回答 2

3

要创建新的唯一标识符,请使用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
于 2013-02-07T11:38:24.503 回答
3

您可以使用任何一种可用的散列函数。

例子

UPDATE dbo.[t_Health]
SET Code = hashbytes('SH2_512', CAST(CustRef AS VARCHAR(16))  
于 2013-02-07T11:41:25.240 回答