Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

T-SQL Xóa tất cả các hàng khỏi bảng khi truy vấn con không đúng định dạng

Dưới dạng TableAID không tồn tại trong TableA , truy vấn đang sử dụng cột từ TableB . Do đó, truy vấn giống như:

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

Vì vậy, về bản chất, nó đang làm:

delete from TableB
where id in (TableAID)

Nếu bạn đang sử dụng các truy vấn phụ, tốt nhất nên đề cập đến tên bảng của bạn khi tham chiếu. SẼ sau đây ném một ngoại lệ:

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

Hơn nữa, tôi sẽ sử dụng một bí danh để chúng tôi biết chúng tôi đang đề cập đến truy vấn nào:

 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. Mệnh đề WHERE để tìm tất cả các bản ghi trong một tháng cụ thể

  2. Làm thế nào để tham chiếu một CTE hai lần?

  3. Làm thế nào để bạn truy vấn một cột int cho bất kỳ giá trị nào?

  4. Trả về lớn hơn sau đó 24 giờ ở định dạng hh:mm:ss trong SQL server 2008

  5. Lỗi phiên bản SQL Server khi đính kèm tệp mdf