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

Làm thế nào để sử dụng OUTPUT để nắm bắt ID mới và cũ?

Bạn không thể sử dụng INSERT truyền thống để xuất các trường không được chèn. Thay vào đó, hãy sử dụng hợp nhất (lưu ý:chỉ hoạt động với khả năng tương thích cơ sở dữ liệu> =100):

MERGE
  #tempproduct AS t
USING(
  SELECT
      Name
      , ID
  FROM
    product) AS s
ON (1=0)  
WHEN NOT MATCHED   
  THEN INSERT (Name) VALUES (Name)
OUTPUT inserted.ID, s.ID INTO @OutputAttributesValues;

SELECT * FROM @OutputAttributesValues


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2012 gói dịch vụ 1 và bản cập nhật tích lũy 1

  2. Tìm các đối tượng bị hỏng trong SQL Server

  3. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro thành cơ sở dữ liệu SQL Server

  4. ON [PRIMARY] có nghĩa là gì?

  5. Làm thế nào để chọn tất cả các bản ghi từ một bảng mà không tồn tại trong một bảng khác?