SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

SSMS pozwala na zduplikowanie rekordów w tabeli, ale nie na kolejne aktualizacje

Wszystko, co kiedykolwiek robi studio zarządzania, to zapewnia interfejs użytkownika do tworzenia dla ciebie kodu SQL i uruchamia go z bazą danych.

W twoim przypadku za każdym razem, gdy dodajesz wiersz, powstaje instrukcja INSERT. Jest to całkowicie ważne.

Gdy następnie próbowałeś użyć interfejsu użytkownika do usunięcia lub aktualizacji pojedynczego rekordu ze wszystkich zduplikowanych rekordów, nie można było wygenerować kodu SQL, aby to zrobić. Powodem jest to, że ponieważ w tabeli nie było klucza, nie ma możliwości stworzenia klauzuli WHERE, która reprezentowałaby rekord, który próbujesz UPDATE lub DELETE.

To komunikaty o „błędach” brzmią dla mnie doskonale i poprawnie.

Co do twoich komentarzy:

Ku mojemu zdziwieniu pozwoliło mi to również wpisać „value1” w drugim rzędzie i wpisać w dół - powinno to być niemożliwe, ponieważ teraz są dwa identyczne wiersze. Jednak ponieważ tylko się bawiłem, nie przeszkadzało mi to.

Oczywiście jest to dziwna i łamliwa teoria relacyjna, ale tak naprawdę nie obchodziło mnie to, ponieważ jest to tylko stół, który stworzyłem, aby się bawić.

Nie ma nic złego w posiadaniu tabeli bazy danych, która pozwala na duplikaty, jest to całkowicie słuszna rzecz, jeśli tego potrzebujesz. Jeśli chodzi o nie „opiekę” lub „przejmowanie się”, że pozwoliłeś na duplikaty. Na tym polega błąd. Wtedy powinieneś zdać sobie sprawę, że zapomniałeś dodać klucz podstawowy.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Codzienna wyjątkowa sprzedaż SQL, kroczące agregaty?

  2. Czy istnieje sposób na rozwinięcie listy kolumn w SELECT * z #Temp_Table w SSMS?

  3. Śledź zmiany w bazie danych Microsoft SQL Server

  4. Nieprawidłowa nazwa obiektu — procedura składowana

  5. Jak przyznać użytkownikowi dostęp do odczytu bazy danych w programie SQL Server?