複数の列で hashbytes を使用してハッシュ キーを作成し、現在 where 句で使用しているパフォーマンスを向上させています。
alter table dbo.Table1
add HashKey AS CAST(hashbytes('MD5', PID+PNumber+CONVERT([varchar] (50),[DateStamp]) +CONVERT(VARCHAR(50), TransactionCount)+OCD+ONbr+TransactionID) AS VARBINARY(80)) PERSISTED
しかし、その列の 1 つは、追加できない datetime2 フィールドです。私がしようとしている間、私はエラーメッセージの下に来ています
「列が非決定論的であるため、テーブル 'table1' の計算列 'HashKey' を永続化できません。」.
私の調査から、datetime2 は非決定論的であるため使用できないことがわかりました。
しかし、すべてのミリ秒を含む値を正確に比較する必要があるため、形式を変更することはできません。
誰か私に回避策を教えてもらえますか?