Datensatzwert in SQL vergleichen

Veröffentlicht: 2. März 2011 in SQL, Trick

Wie schon angekündigt, hier der SQL Befehl um Datensätze, bzw. bestimmte Felder zweier zusammengehörender (selber Primary Key) Datensätze in unterschiedlichen Tabellen auf Differenzen zu überprüfen:

(Beispiel der Customer Tabelle in Live und Dev Datenbank)

SELECT
 'DevDatabse' TableID
 ,[No_]       
 ,[Name]       
 ,[Quantity]
FROM [DataBase_Dev].[dbo].[Company$Customer] as TableOne
WHERE
 BINARY_CHECKSUM(
 TableOne.[Name]
 ,TableOne.[Post Code]
 ,TableOne.[City]
 ,TableOne.[Fax No_]
 ,TableOne.[E-Mail]
 ,TableOne.[Home Page]
 <>
 (SELECT BINARY_CHECKSUM(
 TableTwo.[Name]
 ,TableTwo.[Post Code]
 ,TableTwo.[City]
 ,TableTwo.[Fax No_]
 ,TableTwo.[E-Mail]
 ,TableTwo.[Home Page]
 )
 FROM DataBase_Live].[dbo].[Company$Customer] as TableTwo
 WHERE TableTwo.[No_]  = TableOne.[No_]

Hier wurde die Build-in-Function BINARY_CHECKSUM verwendet. Diese errechnet ein Prüfsummenwert aus den angegebenen Werten, der zum Vergleich verwendet werden kann. Innerhalb dieser Funktion, können die zu überprüfenden Felder eingetragen werden. Leider kann man sich hier das Leben nicht einfach machen in dem man ‚*‘ eingibt weil hier der in SQL intern verwendete Timestamp fast immer unterschiedlich sein wird ;).

Mit freundlichen Grüßen,

Matthias König

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s