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

SSMS staat dubbele records in een tabel toe, maar geen latere updates

Het enige dat managementstudio ooit doet, is een gebruikersinterface bieden om wat SQL voor u te maken en dit tegen de DB uit te voeren.

In uw geval, elke keer dat u een rij toevoegde, produceerde het een INSERT-instructie. Dit is volkomen geldig.

Toen u vervolgens probeerde de gebruikersinterface te gebruiken om een ​​enkel record uit al deze dubbele records te VERWIJDEREN of BIJWERKEN, was het niet in staat om de SQL te produceren om dat te doen. De reden hiervoor is dat, aangezien er geen sleutel op de tafel lag, er geen manier is om een ​​WHERE-clausule te produceren die de record zou vertegenwoordigen die u probeerde te UPDATEN of VERWIJDEREN.

De "fout"-berichten klinken voor mij volkomen duidelijk en geldig.

Wat betreft uw opmerkingen:

Tot mijn verbazing kon ik ook "waarde1" op de tweede rij invoeren en naar beneden gaan - dit zou onmogelijk moeten zijn omdat er nu twee identieke rijen zijn. Maar aangezien ik maar wat aan het rommelen was, stoorde dit me niet.

Dit is natuurlijk vreemd en breekt de relationele theorie, maar het kon me niet echt schelen, want dit is gewoon een tafel die ik heb gemaakt om mee te rommelen.

Er is niets mis met het hebben van een databasetabel die duplicaten toestaat, het is een perfect geldige zaak om te doen als het is wat je nodig hebt. Wat betreft het niet "zorgen" of "lastig zijn" dat je duplicaten had toegestaan. Daar ligt de fout. Op dat moment had u zich moeten realiseren dat u bent vergeten een primaire sleutel toe te voegen.



  1. Kan phpmyadmin niet openen, required_once(./libraries/common.inc.php):kan stream niet openen:geen dergelijk bestand of map

  2. Mac-alternatief voor SQL-serverbeheerstudio?

  3. naar phpmyadmin gaan met map

  4. geen vreemde sleutel in tabel als motor MyISAM is