2013-01-15 2 views
0

작업 : 동일한 구조의 두 테이블에서 데이터의 유효성을 검사합니다. 우리는 이것을 위해 레코드에 체크섬 기능을 사용하려고했습니다.SQL의 datetime 필드에 대한 체크섬

문제점 : 테이블의 레코드는 동일합니다. 그러나 체크섬 (*)을 사용하면 다른 CheckSum이 제공됩니다.

SELECT statusName,CheckSum(*) from OrderStatus 

DateTime 열을 제외하고 체크섬을 계산하면 두 테이블 모두에서 동일한 값이됩니다. 테이블에서

SELECT statusName,CheckSum(StatusName,CreatedByUser,ModifiedByUser) from OrderStatus 

열 : StatusName, CreatedByUser, ModifiedByUser, CreatedDateTime, LastModifiedTime

은 날짜 열을 포함하여이 문제를 해결하는 방법.

도움이 되었습니까? !!!!

+0

당신이 확인 했 날짜 시간 값이 실제로 있음 두 테이블의 일치하는 레코드간에 동일합니까? –

+0

예. 원본에서 대상으로 일부 데이터를 복사하여 쿼리의 유효성을 검사했습니다. 대상의 데이터는 원본의 정확한 복제본입니다. – Anusha

답변

1

체크섬의 경우 열의 순서가 달라집니다.

첫 번째 쿼리의 *를 정확한 동일한 열 목록으로 바꿉니다. CheckSum은 날짜 및 날짜 시간에 작동해야합니다.

0

나를 위해 효과가있는 것으로 보입니다. 다음은 SQL Fiddle입니다.

뭔가 당신의 날짜 시간 열이 꺼져 의심 - 무엇이든이 다른 경우 볼이 실행

SELECT * 
FROM OrderStatus OS1 
LEFT JOIN OrderStatus OS2 ON OS1.CreatedDateTime = OS2.CreatedDateTime AND OS1.LastModifiedTime=OS2.LastModifiedTime 
WHERE OS2.LastModifiedTime IS NULL 
0

이 시도 :

SELECT statusName, 
CheckSum(CreatedByUser,ModifiedByUser,CreatedDateTime,LastModifiedTime) 
from OrderStatus 
관련 문제