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

Cara menghapus baris dalam tabel yang berisi kunci asing ke tabel lain

Pertama, sebagai latihan penggosokan data satu kali, hapus baris yatim piatu mis.

DELETE 
  FROM ReferencingTable 
 WHERE NOT EXISTS (
                   SELECT * 
                     FROM MainTable AS T1
                    WHERE T1.pk_col_1 = ReferencingTable.pk_col_1
                  );

Kedua, sebagai latihan perubahan skema satu kali, tambahkan ON DELETE CASCADE tindakan referensial ke kunci asing pada tabel referensi mis.

ALTER TABLE ReferencingTable DROP 
   CONSTRAINT fk__ReferencingTable__MainTable;

ALTER TABLE ReferencingTable ADD 
   CONSTRAINT fk__ReferencingTable__MainTable 
      FOREIGN KEY (pk_col_1)
      REFERENCES MainTable (pk_col_1)
      ON DELETE CASCADE;

Kemudian, selamanya, baris dalam tabel referensi akan otomatis dihapus saat baris referensinya dihapus.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2017:Menyalin Data SQL Server dari Linux ke Windows dengan SSIS

  2. Pad string dengan nol di depan sehingga panjangnya 3 karakter di SQL Server 2008

  3. Pada pembaruan tabel, picu tindakan dalam kode .NET saya

  4. SQL Server (TSQL) - Apakah mungkin untuk membuat pernyataan EXEC secara paralel?

  5. Cara Mengembalikan Nilai Kode ASCII untuk Karakter yang diberikan di SQL Server