快速提问,我有一个表,其中有一列是一组行的标识符。例如记录客户交易的一组行,其中每一行都有客户参考。
我想要实现的是给那组行一个新的唯一标识符,这样我就可以匿名报告它。
我试过的
UPDATE dbo.[t_Health]
set Code = 'ABC' + Cast(RAND() as varchar(50))
where si.CustRef= si.CustRef
非常感谢!
快速提问,我有一个表,其中有一列是一组行的标识符。例如记录客户交易的一组行,其中每一行都有客户参考。
我想要实现的是给那组行一个新的唯一标识符,这样我就可以匿名报告它。
我试过的
UPDATE dbo.[t_Health]
set Code = 'ABC' + Cast(RAND() as varchar(50))
where si.CustRef= si.CustRef
非常感谢!
要创建新的唯一标识符,请使用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
您可以使用任何一种可用的散列函数。
例子
UPDATE dbo.[t_Health]
SET Code = hashbytes('SH2_512', CAST(CustRef AS VARCHAR(16))