Select the product you need help with
Entfernen von doppelten Zeilen aus einer Tabelle in SQL ServerArtikel-ID: 139444 - Produkte anzeigen, auf die sich dieser Artikel bezieht Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base: 139444
(http://support.microsoft.com/kb/139444/EN-US/
)
How to remove duplicate rows from a table in SQL ServerBitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung. ZusammenfassungMicrosoft SQL Server-Tabellen sollten niemals doppelte Zeilen oder nicht-eindeutige Primärschlüssel enthalten. Primärschlüssel werden in diesem Artikel manchmal als "Schlüssel" oder "PK" bezeichnet, dies bedeutet aber immer "Primärschlüssel". 2 doppelte PS´s stellen eine Verletzung der Einheitenintegrität dar, und sollten daher in einem relationalem System nicht erlaubt sein. SQL Server verfügt über mehrere Mechanismen, um die Einheitenintegrität durchzusetzen. Unter anderem Indizes, UNIQUE-Einschränkungen, PRIMARY KEY-Einschränkungen (Primärschlüssel) und Trigger. Trotzdem kann es unter ungewöhnlichen Umständen vorkommen, dass doppelte Primärschlüssel auftreten. Ist dies der Fall, müssen sie entfernt werden. Eine Möglichkeit warum dies auftreten kann ist, wenn doppelte PKs in nicht-relationalen Daten außerhalb von SQL Server existieren, und die Daten importiert werden, ohne dass die PK-Einzigartigkeit durchgesetzt wird. Eine weitere Möglichkeit ist ein Fehler im Datenbankdesign, wie beispielsweise dass die Einheitenintegrität nicht in jeder Tabelle durchgesetzt wird. Oft werden doppelte PKs beim Versuch erkannt, einen eindeutigen Index zu erstellen, wobei es zum Abbruch kommt, wenn doppelte Schlüssel gefunden werden. Die Meldung lautet (sinngemäß): Meldung 1505, Schweregrad 16, Status 1 Erstellung des eindeutigen Index bei doppeltem Schlüssel abgebrochen. Meldung 1505, Schweregrad 16, Status 1 CREATE UNIQUE INDEX beendet, da für Objektname "%.*ls" und Indexname "%.*ls" ein doppelter Schlüssel gefunden wurde. Der doppelte Schlüsselwert ist %ls. Weitere InformationenIn diesem Beispiel wird die folgende Tabelle mit doppelten PK-Werten verwendet. In dieser Tabelle besteht der Primärschlüssel aus den beiden Spalten (col1, col2). Wir können keinen eindeutigen Index oder PRIMARY KEY-Einschränkung erstellen, da sich in zwei Zeilen doppelte PKs befinden. Diese Prozedur veranschaulicht, wie Sie die Duplikate finden und entfernen.
Tabelle minimieren
Wenn es sich nur um wenige Sätze doppelter PS-Werte handelt, ist es am besten, diese einzeln manuell zu löschen. Beispiel: Bevor Sie die Zeilen löschen, sollten Sie sich vergewissern, dass die gesamte Zeile doppelt vorhanden ist. Auch wenn es unwahrscheinlich ist, ist es möglich, dass die PK-Werte doppelt vorhanden sind, die Zeile als Ganzes aber nicht. Ein Beispiel hierfür wäre eine Tabelle mit einer Sozialversicherungsnummer als Primärschlüssel aber zwei verschiedene Menschen (oder Zeilen) und jeder mit eindeutigen Attributen. In diesem Fall, kann die Fehlfunktion, die zu dem doppelten Schlüssel geführt hat, ebenso dazu geführt haben, dass gültige, eindeutige Daten in die Zeile geschrieben wurden. Diese Daten sollten vor dem Löschen herauskopiert und aufbewahrt werden, um diese zu studieren und eventuell einen Abgleich auszuführen. Wenn zu viele unterschiedliche Sätze von doppelten PK-Werten in der Tabelle vorhanden sind, kann das manuelle Entfernen dieser zu zeitaufwändig sein. In diesem Fall kann die folgende Prozedur angewendet werden:
EigenschaftenArtikel-ID: 139444 - Geändert am: Freitag, 18. Februar 2011 - Version: 5.0 Die Informationen in diesem Artikel beziehen sich auf:
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| SPRACHE AUSWÄHLEN
|


Zum Anfang








