Wir erstellen zwei neue Tabellen mithilfe der CREATE TABLE-Anweisung.
Die beiden Tabellen werden als Country1 und Country2 benannt.
Die ersten zwei Datensätze mit der ID 1 und 2 beinhalten gleiche Ländernamen.
Der Datensatz mit der ID 3 hat unterschiedliche Werte und der Datensatz mit der ID 4 ist nur in der Country2-Tabelle vorhanden.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Country1]([ID] [int] NOT NULL,
[Country] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL)
INSERT INTO [dbo].[Country1] ([ID],[Country]) VALUES (1, 'SWITZERLAND')
INSERT INTO [dbo].[Country1] ([ID],[Country]) VALUES (2, 'GERMANY')
INSERT INTO [dbo].[Country1] ([ID],[Country]) VALUES (3, 'AUSTRIA')
CREATE TABLE [dbo].[Country2]([ID] [int] NOT NULL,
[Country] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL)
INSERT INTO [dbo].[Country2] ([ID],[Country]) VALUES (1, 'SWITZERLAND')
INSERT INTO [dbo].[Country2] ([ID],[Country]) VALUES (2, 'GERMANY')
INSERT INTO [dbo].[Country2] ([ID],[Country]) VALUES (3, 'TURKIYE')
INSERT INTO [dbo].[Country2] ([ID],[Country]) VALUES (4, 'ITALY')
Wir möchten herausfinden, welche Datensätze in beiden Tabellen unterschiedlich sind. Die unterschiedlichen Datensätze werden aufgelistet.
Die folgende SQL-Anweisung hilft uns, die unterschiedlichen Datensätze aus beiden Tabellen zu ermitteln.
SELECT 'Country1' TableName, *, BINARY_CHECKSUM(*) BINARY_CHECKSUM_Value
FROM [Country1]
WHERE BINARY_CHECKSUM(*) NOT IN (SELECT BINARY_CHECKSUM(*) FROM [Country2])
UNION ALL SELECT 'Country2' TableName, *, BINARY_CHECKSUM(*) BINARY_CHECKSUM_Value
FROM [Country2] WHERE BINARY_CHECKSUM(*) NOT IN (SELECT BINARY_CHECKSUM(*)
FROM [Country1]) ORDER BY ID, 1
Als Resultat erhalten wir folgende Liste:
¦TableName¦ID---------¦Country-----------------------¦BINARY_CHECKSUM_Value¦
¦---------¦-----------¦------------------------------¦---------------------¦
¦Country1-¦3----------¦AUSTRIA-----------------------¦1141249761-----------¦
¦Country2-¦3----------¦TURKIYE-----------------------¦1359412453-----------¦
¦Country2-¦4----------¦ITALY-------------------------¦4982233--------------¦
No comments:
Post a Comment