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 に答える