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

SSMS consente la duplicazione dei record in una tabella, ma non gli aggiornamenti successivi

Tutto ciò che fa Management Studio è fornire un'interfaccia utente per creare un po' di SQL per te ed eseguirlo sul DB.

Nel tuo caso, ogni volta che hai aggiunto una riga, ha prodotto un'istruzione INSERT. Questo è perfettamente valido.

Quando hai quindi provato a utilizzare l'interfaccia utente per ELIMINARE o AGGIORNARE un singolo record di tutti questi record duplicati, non è stato possibile produrre l'SQL per farlo. Il motivo è che, poiché non c'era una chiave sul tavolo, non c'è modo di produrre una clausola WHERE che rappresenti il ​​record che stavi tentando di AGGIORNARE o CANCELLARE.

I suoi messaggi di "errore" mi sembrano perfettamente chiari e validi.

Per quanto riguarda i tuoi commenti:

Con mia sorpresa, mi ha anche permesso di inserire "value1" sulla seconda riga e di inserire in basso - questo dovrebbe essere impossibile poiché ora ci sono due righe identiche. Tuttavia, dato che stavo solo scherzando, questo non mi ha infastidito.

Ovviamente questa è una teoria strana e non relazionale, ma non mi importava davvero poiché questo è solo un tavolo con cui ho creato per scherzare.

Non c'è niente di sbagliato nell'avere una tabella di database che consente duplicati, è una cosa perfettamente valida da fare se è ciò di cui hai bisogno. Per quanto riguarda il non "prendersi cura" o essere "infastiditi" dal fatto che avevi consentito i duplicati. Ecco dove sta l'errore. È allora che dovresti esserti reso conto di aver dimenticato di aggiungere una chiave primaria.