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

SQL Delete membersihkan tabel alih-alih membuat kesalahan

Itu berfungsi seperti yang diharapkan, karena korelasi antara KolomA dalam kueri dalam ke luar.

Pola kueri berkorelasi yang umum digunakan ini valid

DELETE TableA WHERE NOT EXISTS (select * from TableB where TableB.ID=TableA.ID)

Ini menghapus entri TableA yang tidak memiliki catatan dependen di TableB.

Ini menunjukkan bahwa Anda dapat mereferensikan kolom TableA dalam kueri yang berkorelasi. Dalam permintaan Anda

delete TableA where ColumnA in (select ColumnA from TableB)

Permintaan dalam menghasilkan

  • satu baris untuk setiap record di TableB
  • satu kolom untuk setiap baris, yang nilainya adalah ColumnA dari kueri luar

Jadi DELETE melewati



  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 mengonversi datetime dan kurangi jam

  2. Kehadiran IN dan OUT

  3. Penginstalan dan Konfigurasi SQL Server Log Pengiriman &Pemulihan Bencana -1

  4. T-SQL:masalah dengan string concat

  5. Menemukan nilai bukan nol sebelumnya dari daftar urutan tanggal