-- http://www.sql-und-xml.de/sql-praxis/doppelte-daten-zeilen-loeschen.sql -- Jürgen Auer, 10/2003, alle Rechte vorbehalten -- -- Fügen Sie hier mit -- use Datenbank-Name -- den Namen der Datenbank ein, in welcher die Tabelle erzeugt werden soll -- use db_Sql_Beispiele go -- Vorheriges Löschen Drop Procedure up_zeige_Zeilen_zum_Loeschen go Drop Table tbl_Personen go Create Table tbl_Personen([Personen-Id] int Identity(1, 1) Primary Key, Nachname varchar(30), Vorname varchar(30), Geburtstag datetime) Insert Into tbl_Personen( Nachname, Vorname, Geburtstag) SELECT 'Schmidt', 'Hans', '1.1.1950' UNION ALL SELECT 'Schmidt', 'Hans', '1.1.1950' UNION ALL SELECT 'Schmidt', 'Hans', '1.1.1950' UNION ALL SELECT 'Maier', 'Franz', NULL UNION ALL SELECT 'Maier', 'Franz', NULL UNION ALL SELECT 'Schubert', 'Gerd', '1.7.1960' go Create Procedure up_zeige_Zeilen_zum_Loeschen As SELECT A.[Personen-Id] As [Datensatz-ist-Kandidat-zum-Loeschen], A.Nachname, A.Vorname, A.Geburtstag -- alternativ: DELETE FROM tbl_Personen As A Where A.[Personen-Id] NOT IN (SELECT Min(X.[Personen-Id]) FROM tbl_Personen As X GROUP BY X.Nachname, X.Vorname, X.Geburtstag) go -- Anzeige der Tabelle Select * From tbl_Personen -- Ausführen der Prozedur Execute up_zeige_Zeilen_zum_Loeschen go