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

Serwer SQL - usuwanie rekurencyjne

To są najlepsze i najskuteczniejsze. W przypadku zapytań produkcyjnych użyłbym 2 .

Jedyne inne sposoby, o których mogę pomyśleć, to (IMO) nadające się tylko do szybkiego i brudnego usuwania danych w środowisku testowym (unikając konieczności analizowania prawidłowej kolejności)

  1. Wyłącz wszystkie FK, usuń żądane dane, a następnie ponownie włącz FK. Jest to nieefektywne, ponieważ należy je ponownie włączyć WITH CHECK aby uniknąć pozostawiania FK w stanie niezaufanym, co oznacza, że ​​wszystkie zachowane dane muszą zostać ponownie zweryfikowane.
  2. Wymień wszystkie DELETE instrukcji dotyczących tabel, których dotyczy problem, w dowolnej kolejności i uruchamiaj partię tyle razy, ile to konieczne, aż zakończy się pomyślnie bez błędów FK.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź rekordy z 3 lub więcej kolejnymi rekordami o tej samej wartości

  2. Użyj OBJECTPROPERTY(), aby dowiedzieć się, czy tabela jest tabelą systemową w SQL Server

  3. Wyeliminuj i zmniejsz nakładające się zakresy dat

  4. Utwórz zadanie agenta serwera SQL przy użyciu T-SQL

  5. Przechwytywanie i ponowne zapisywanie zapytań w SQL Server 2005