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

SQL Delete xóa bảng thay vì lỗi

Điều đó hoạt động như mong đợi, do mối tương quan giữa ColumnA trong truy vấn bên trong với bên ngoài.

Mẫu truy vấn tương quan thường được sử dụng này là hợp lệ

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

Nó loại bỏ các mục nhập TableA không có bản ghi phụ thuộc trong TableB.

Nó cho thấy rằng bạn có thể tham chiếu các cột TableA trong một truy vấn tương quan. Trong truy vấn của bạn

delete TableA where ColumnA in (select ColumnA from TableB)

Truy vấn bên trong đang tạo ra

  • một hàng cho mỗi bản ghi trong TableB
  • một cột cho mỗi hàng, có giá trị là CộtA từ truy vấn bên ngoài

Vì vậy, DELETE được thực hiện



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bỏ khóa ngoại mà không biết tên của ràng buộc?

  2. Khắc phục sự cố trong Sql Server 2008

  3. Kiểm tra xem một ngày nhất định có phù hợp với một phạm vi ngày không

  4. Bất kỳ lý do nào để cài đặt SQL Server 2005 và 2008 trên cùng một máy?

  5. Làm cách nào để chuyển một byte [] thành datetime trong C #?