2009-09-29 5 views
0

SQL Server 2000을 사용하고 있으며 고유 ID가있는 데이터 집합이 있으면 고유 ID와 일치하는 데이터베이스의 행과의 차이점을 파악하고 싶습니다. 가능한 한 유연하게 유지하려고 노력 중입니다.SQL Server 2000의 테이블 차이점

프런트 엔드에서 C#/VB를 사용하여 매개 변수를 가져 오거나 반환 할 수도 있습니다. 어쩌면 XML을 전달하고 그 대가로 XML을 얻는가?

// returns the columns that are different 
func(A, B, C) { 

} 

어떤 아이디어 :

예를 들어, 나는 호출하는 기능을 원하는?

답변

3

당신이 UNION와 함께 사용할 수있는 멋진 트릭있다

같은 기존의 "데이터 DIFF"도구를 사용하여 마크를 가고 싶어요 :

SELECT MAX(tbl) AS TABLE_NAME, unique_key 
FROM (
    SELECT 'table1' AS tbl, unique_key 
    FROM table1 
    UNION ALL 
    SELECT 'table2' AS tbl, unique_key 
    FROM table2 
) AS X GROUP BY unique_key 
HAVING COUNT(*) = 1 

이것은 한면 또는 다른면에 다른면이없는 행을 표시합니다.

이렇게 확장하면 분명히 더 많은 일을 할 수 있습니다. (데이터가 다른 곳에 키에 일치)

양자 택일로, 당신은 함께하고 RIGHT JOIN (키 다른 누락) 및 UNION 모두 (한쪽에없는 키), LEFT JOININNER JOIN을 할 수 있습니다.

필자는 실제로 두 개의 테이블을 비교하고 어떤 열이 키의 일부로 간주되는지, 어떤 열을 무시할 것인지를 설정하는 옵션이있는 유틸리티 SP (필요로하는 옵션에 따라 하나 또는 다른 방법 사용) 각면을 부분 집합으로 제한합니다. 테이블에 차이를 작성하는 옵션도 있습니다.

2

내가

+0

나는 이러한 훌륭한 도구가 지원을 중단하기 전에 SQL 서버 2000에서 업그레이드하는 것을 위해, 최고의 Volpet Table Diff과 같이 작동합니다. –

0

그래 마크에 동의은 전문 도구는 SQL 서버

관련 문제