Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zrozumienie reguł aktualizacji i usuwania dla relacji w SSMS 2008

Klucz obcy definiuje relację rodzic - dziecko między dwiema tabelami. Kluczem podstawowym w tabeli nadrzędnej jest klucz obcy w maksymalnie n wierszach tabeli podrzędnej.

Teraz, jeśli ten klucz podstawowy w tabeli nadrzędnej otrzymuje UPDATE, uruchamia się UPDATE RULE. Albo wszystkie wiersze podrzędne są również aktualizowane, ustawiane na NULL lub cokolwiek innego. Najlepszą praktyką jest jednak posiadanie klucza podstawowego, który NIGDY się nie zmienia (stały identyfikator lub coś takiego), więc jest to mniej ważna zasada.

Ważniejsza jest reguła DELETE – co jeśli wiersz nadrzędny zostanie usunięty (np. Zlecenie zostanie usunięte)? Możesz również usunąć wszystkie wiersze podrzędne (wszystkie pozycje zamówienia) za pomocą polecenia CASCADE DELETE lub ustawić ich klucz obcy na NULL (nie mają już rodzica) – to całkowicie zależy od Twojego konkretnego scenariusza.

W scenariuszu Zamówienie/wiersze zamówienia może być całkowicie przydatne usunięcie wierszy zamówienia po usunięciu całego zamówienia, ale prawdopodobnie nie chcesz usuwać produktu tylko dlatego, że zamówienie, które się do niego odwołuje, zostało usunięte — nie ma jedna PRAWIDŁOWA odpowiedź - zależy to od Twojego scenariusza i Twojej aplikacji.

Marek



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy można zmodyfikować systemową procedurę składowaną?

  2. Unicode w SQL Server 2012 Express

  3. Jak używać parametru OUTPUT w procedurze składowanej?

  4. Jaka jest kolejność wykonywania tej instrukcji SQL?

  5. Jak mogę połączyć się z serwerem SQL z komputera Mac z PHP PDO?