SSMS
 sql >> Datenbank >  >> Database Tools >> SSMS

SSMS lässt doppelte Datensätze in einer Tabelle zu, jedoch keine nachfolgenden Aktualisierungen

Alles, was Management Studio jemals tut, ist, eine Benutzeroberfläche bereitzustellen, um SQL für Sie zu erstellen und es gegen die DB auszuführen.

In Ihrem Fall erzeugte jedes Mal, wenn Sie eine Zeile hinzufügten, eine INSERT-Anweisung. Dies ist vollkommen gültig.

Als Sie dann versuchten, die Benutzeroberfläche zum LÖSCHEN oder AKTUALISIEREN eines einzelnen Datensatzes aus all diesen doppelten Datensätzen zu verwenden, war es nicht möglich, die SQL dafür zu erstellen. Der Grund dafür ist, dass es keine Möglichkeit gibt, eine WHERE-Klausel zu erzeugen, die den Datensatz darstellt, den Sie aktualisieren oder löschen wollten, da es keinen Schlüssel in der Tabelle gab.

Seine "Fehler"-Meldungen klingen für mich vollkommen klar und gültig.

Zu Ihren Kommentaren:

Zu meiner Überraschung erlaubte es mir auch, "Wert1" in der zweiten Zeile einzugeben und nach unten einzugeben - dies sollte unmöglich sein, da es jetzt zwei identische Zeilen gibt. Da ich aber nur rumgespielt habe, hat mich das nicht weiter gestört.

Offensichtlich ist das seltsam und bricht mit der relationalen Theorie, aber es war mir egal, da dies nur eine Tabelle ist, die ich erstellt habe, um damit herumzuspielen.

Es ist nichts Falsches daran, eine Datenbanktabelle zu haben, die Duplikate zulässt, es ist eine absolut gültige Sache, wenn Sie es brauchen. Was das Nicht-"Kümmern" oder "Belästigen" angeht, dass Sie Duplikate zugelassen haben. Da liegt der Fehler. Dann sollten Sie bemerkt haben, dass Sie vergessen haben, einen Primärschlüssel hinzuzufügen.