Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menghapus semua baris dependen

Jika Anda tidak diizinkan untuk mengubah tabel, Anda dapat melihat EXISTS operator.
Ini akan memungkinkan Anda untuk menghapus baris dari tabel hanya jika kueri di dalam EXISTS mengembalikan setidaknya 1 hasil. Anda dapat menggunakannya untuk memeriksa dependensi.

Anda dapat menulis 3 pertanyaan:

DELETE C c
WHERE EXISTS (SELECT 1
              FROM B b
              WHERE c.b = b.b
              AND EXISTS (SELECT 1
                          FROM A a
                          WHERE a.a = b.a
                          AND ... ));
DELETE B b
WHERE EXISTS (SELECT 1
              FROM A a
              WHERE a.a = b.a
              AND ...);

DELETE A a
WHERE ...

Yang pertama akan mengurus catatan di C yang mereferensikan catatan di B yang mereferensikan catatan dalam A yang ingin Anda hapus.
Kemudian Anda dapat menghapus catatan dari B karena tidak ada lagi ketergantungan di C .
Akhirnya, Anda dapat menghapus catatan dari A menggunakan logika yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Properti ConnectionString belum diinisialisasi kesalahan di VB.NET

  2. C# membuat database secara terprogram dengan SMO

  3. ANTARA operator vs.>=DAN <=:Apakah ada perbedaan kinerja?

  4. unpivot dengan kolom dinamis ditambah nama kolom

  5. prosedur tersimpan dengan parameter wildcard