टी 1 (पीके, ए, बी) और टी 2 (पीके, ए, बी) की तुलना करने के लिए।
पहले महत्वपूर्ण कुंजी मानों की ओर देखने के लिए प्राथमिक कुंजी सेटों की तुलना करें:
SELECT T1.*, T2.* FROM T1 FULL OUTER JOIN T2 ON T1.PK=T2.PK WHERE T1.PK IS NULL OR T2.PK IS NULL;
फिर सभी मूल्य बेमेल सूची:
SELECT T1.PK, 'A' AS columnName, T1.A AS leftValue, T2.A AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE COALESCE(T1.A,0) != COALESCE(T2.A,0)
UNION ALL
SELECT T1.PK, 'B' AS columnName, T1.B AS leftValue, T2.B AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE COALESCE(T1.B,0) != COALESCE(T2.B,0)
A और B एक ही प्रकार के होने चाहिए। चयन करने के लिए आप सूचना स्कीम का उपयोग कर सकते हैं। यह भी मत भूलो कि क्या इसमें NULL परिणाम भी शामिल हैं। आप FULL OUTER JOIN और COALESCE (T1.PK, 0) = COALESCE (T2.PK, 0) का भी उपयोग कर सकते हैं।
उदाहरण के लिए प्रकार के कॉलम के लिए:
SELECT concat('SELECT T1.PK, ''', COLUMN_NAME, ''' AS columnName, T1.', COLUMN_NAME, ' AS leftValue, T2.', COLUMN_NAME, ' AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE COALESCE(T1.',COLUMN_NAME, ',0)!=COALESCE(T2.', COLUMN_NAME, ',0)')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='T1' AND DATA_TYPE IN ('nvarchar','varchar');