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

Làm cách nào để CHÈN dữ liệu vào hai bảng đồng thời trong SQL Server?

Hãy thử điều này:

insert into [table] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]

CẬP NHẬT: V / v:

Denis - điều này có vẻ rất gần với những gì tôi muốn làm, nhưng có lẽ bạn có thể sửa câu lệnh SQL sau cho tôi? Về cơ bản, [dữ liệu] trong [table1] và [data] trong [table2] đại diện cho hai cột khác nhau / khác biệt với [external_table]. Câu lệnh bạn đã đăng ở trên chỉ hoạt động khi bạn muốn các cột [dữ liệu] giống nhau.

INSERT INTO [table1] ([data]) 
OUTPUT [inserted].[id], [external_table].[col2] 
INTO [table2] SELECT [col1] 
FROM [external_table] 

Không thể xuất các cột bên ngoài trong insert tuyên bố, vì vậy tôi nghĩ bạn có thể làm điều gì đó như thế này

merge into [table1] as t
using [external_table] as s
on 1=0 --modify this predicate as necessary
when not matched then insert (data)
values (s.[col1])
output inserted.id, s.[col2] into [table2]
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Salesforce SOQL từ SQL Server

  2. MAX so với Top 1 - cái nào tốt hơn?

  3. Ví dụ về Chuyển đổi "date" thành "datetime" trong SQL Server (T-SQL)

  4. Toán tử logic IN là gì trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 122

  5. SQL Server 2012 truy vấn dữ liệu Access 2007 sử dụng lỗi OPENROWSET