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

Làm cách nào để xóa khỏi nguồn bằng lệnh MERGE trong SQL Server 2008?

Bạn có thể sử dụng mệnh đề đầu ra để nắm bắt các hàng đã sửa đổi / chèn vào một biến bảng và sử dụng điều đó với câu lệnh xóa sau khi hợp nhất.

DECLARE @T TABLE(EmployeeID INT);

MERGE Target1 AS T
USING Source1 AS S
ON (T.EmployeeID = S.EmployeeID) 
WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%' 
    THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED 
    THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE AND T.EmployeeName LIKE 'S%'
    THEN DELETE  
OUTPUT S.EmployeeID INTO @T;

DELETE Source1
WHERE EmployeeID in (SELECT EmployeeID
                     FROM @T);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các gói SQL Server:sự khác biệt giữa Quét chỉ mục / Tìm kiếm chỉ mục

  2. Cách chuyển các tham số giá trị bảng sang thủ tục được lưu trữ từ mã .net

  3. Nhận số chữ số sau dấu thập phân của dấu phẩy (có hoặc không có phần thập phân)

  4. Xuất Excel sang SQL bằng VBA

  5. Hoàn tất quy trình sao chép bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác (Xuất-nhập) trong SQL Server