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

cú pháp cho MERGE hàng đơn / upert trong SQL Server

cuối cùng tôi đã có cú pháp Nâng cấp bằng cách sử dụng MERGE trong SQL Server 2008. Sử dụng những gì Jacob muốn việc cần làm (một Upsert):

IF EXISTS(SELECT * FROM member_topic WHERE mt_member = 0 AND mt_topic = 110)
BEGIN
    --update existing row
    UPDATE member_topic SET mt_notes = 'test'
    WHERE mt_member = 0
    AND mt_topic = 110
END
ELSE
BEGIN
    --insert new row
    INSERT INTO member_topic (mt_member, mt_topic, mt_notes)
    VALUES (0, 110, 'test')
END

MERGE tương đương cú pháp là:

MERGE member_topic
USING ( 
    VALUES (0, 110, 'test')
) AS foo (mt_member, mt_topic, mt_notes) 
ON member_topic.mt_member = foo.mt_member 
   AND member_topic.mt_topic = foo.mt_topic
WHEN MATCHED THEN
   UPDATE SET mt_notes = foo.mt_notes
WHEN NOT MATCHED THEN
   INSERT (mt_member, mt_topic, mt_notes)
   VALUES (foo.mt_member, foo.mt_topic, foo.mt_notes)
; --A MERGE statement must be terminated by a semi-colon (;).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. “Lỗi nghiêm trọng kết nối nội bộ” khi thực thi một quy trình được lưu trữ được biên dịch hoàn toàn trong SQL Server 2019 (Lỗi đã biết)

  2. Chỉ mục dựa trên hàm trong SQL Server

  3. Cách chèn dòng mới trong nvarchar một cách chính xác

  4. Làm cách nào để nhập tệp .bak SQL Server vào MySQL?

  5. SQL Server LIKE chứa các ký tự trong ngoặc