sql >> Database teknologi >  >> Database Tools >> SSMS

SSMS tillader dublerede poster i en tabel, men ikke efterfølgende opdateringer

Alt, hvad managementstudio nogensinde gør, er at levere en brugergrænseflade til at skabe noget SQL til dig og køre det mod databasen.

I dit tilfælde producerede den en INSERT-sætning, hver gang du tilføjede en række. Dette er helt gyldigt.

Da du derefter forsøgte at bruge brugergrænsefladen til at SLETTE eller OPDATERE en enkelt post ud af alle disse duplikerede poster, var den ikke i stand til at producere SQL'en til at gøre det. Årsagen er, at da der ikke var nogen nøgle på bordet, er der ingen måde at producere en WHERE-klausul, der repræsenterer den post, du forsøgte at OPDATERE eller DELETE.

Det er "fejl"-meddelelser lyder helt klare og gyldige for mig.

Med hensyn til dine kommentarer:

Til min overraskelse tillod det mig også at indtaste "værdi1" på anden række og gå ned - dette burde være umuligt, da der nu er to identiske rækker. Men da jeg bare rodede rundt, generede det mig ikke.

Det er klart, at dette er mærkelig og bryder relationel teori, men jeg var ligeglad, da dette kun er et bord, jeg har skabt til at rode med.

Der er ikke noget galt med at have en databasetabel, der tillader dubletter, det er en helt gyldig ting at gøre, hvis det er det, du har brug for. Med hensyn til ikke at "lige sig" eller at blive "generet" over, at du havde tilladt dubletter. Det er der fejlen ligger. Det er da, du burde have indset, at du glemte at tilføje en primær nøgle.



  1. Apache Port forwarding 80 til 8080 og adgang til applikationer hostet både i Apache (80), dvs. phpMyadmin og Tomcat (8080)

  2. Hvordan indstiller jeg min phpmyadmin-brugersession til ikke at timeout så hurtigt?

  3. Kan ikke importere/implementere database til SQL Azure:Det angivne servicemål (Business/Web) er ugyldigt.

  4. Sletning af tabeller fra en database med phpMyAdmin