여러 절에서 hashbytes를 사용하여 해시 키를 만들면 where 절에서 지금 사용중인 성능을 얻을 수 있습니다.datetime2 필드가있는 HashBytes
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
하지만 그 중 하나의 열은 내가 추가 할 수없는 datetime2 필드입니다. 내가 아래에 오류 메시지가 나타납니다 노력하고있는 동안
"계산 된 열 'table1'열 'HashKey'열이 비 결정적이기 때문에 유지할 수 없습니다."
제 연구에서 비 결정적이므로 datetime2를 사용할 수 없습니다.
그러나 모든 밀리 초를 포함하는 값을 정확하게 비교해야하므로 형식을 변경할 수 없습니다.
누구든지 나를 해결할 수 있습니까?. 다른 해결책은 인정 될 것입니다.
나는 결정형이 아닌 데이터 유형에 대해 들어 본 적이 없다. 당신이하고있는 일이 체크섬 기능과 거의 같다고 보입니다. https://msdn.microsoft.com/en-us/library/ms189788.aspx –
표현 목록에있는 값 중 하나가 변경되면 목록의 체크섬 또한 일반적으로 변경됩니다. 그러나 체크섬이 변경되지는 않을 가능성이 있습니다. 따라서 응용 프로그램에서 변경 사항을 누락하지 않는 한 CHECKSUM을 사용하여 값이 변경되었는지 여부를 감지하는 것을 권장하지 않습니다. 우리는 이것을 용납하지 않는다 :) –