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

T-SQL Menghapus semua baris dari tabel ketika subquery salah format

Sebagai TableAID tidak ada di TableA , kueri menggunakan kolom dari TableB . Oleh karena itu kuerinya sama dengan:

delete from TableB
where id in (
  select TableB.TableAID
  from TableA
  where GUID = 'fdjkhflafdhf'
)

Jadi intinya adalah:

delete from TableB
where id in (TableAID)

Jika Anda menggunakan sub-kueri, sebaiknya sebutkan nama tabel Anda saat merujuk. Berikut AKAN berikan pengecualian:

 delete from TableB
    where id in (
      select TableA.TableAID
      from TableA
      where TableA.GUID = 'fdjkhflafdhf'
    )

Selanjutnya saya akan menggunakan alias agar kita tahu kueri mana yang kita maksud:

 delete from TableB
    where id in (
      select a.TableAID
      from TableA a
      where a.GUID = 'fdjkhflafdhf'
    )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Setara terbaik untuk IsInteger di SQL Server

  2. SQL Server 2000:Ide untuk melakukan subquery agregasi gabungan

  3. String Format Numerik Standar Didukung oleh FORMAT() di SQL Server

  4. Perbarui beberapa tabel di SQL Server menggunakan INNER JOIN

  5. Linux - PHP 7.0 dan MSSQL (Microsoft SQL)