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

Sử dụng hợp nhất trong SQL Server để cập nhật bảng thứ ba

Bạn cần lưu trữ tạm thời đầu ra từ câu lệnh hợp nhất và câu lệnh cập nhật sử dụng bảng tạm thời / biến bảng.

-- Your table A, B and C
declare @A table(ID int, Col int)
declare @B table(ID int, Col int)
declare @C table(ID int, Col int)

-- Sample data
insert into @A values (1, 1),(2, 2)
insert into @B values (1, 0)
insert into @C values (1, 0),(2, 0)

-- Table var to store ouput from merge
declare @T table(ID int, Col int, Act varchar(10))

-- Merge A -> B
merge @B as B
using @A as A
on A.ID = B.ID
when not matched then insert (ID, Col) values(A.ID, A.Col)
when matched then update set Col = A.Col
output inserted.ID, inserted.Col, $action into @T;

-- Update C with rows that where updated by merge    
update C set
  Col = T.Col
from @C as C
  inner join @T as T
    on C.ID = T.ID and
       T.Act = 'UPDATE'

https://data.stackexchange.com/stackoverflow/qt/119724/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đường trung bình cửa sổ trong máy chủ sql

  2. Tôi có thể kết nối với SQL Server bằng Xác thực Windows từ ứng dụng web Java EE không?

  3. Cách định dạng số dưới dạng tiền tệ trong SQL Server (T-SQL)

  4. DATALENGTH () trong SQL Server là gì?

  5. Lợi ích của việc sử dụng ký hiệu vị trí thứ tự trong SQL?