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

Chèn vào nhiều bảng dựa trên dữ liệu bảng khác

Như EzLo đã đề cập, đầu ra là người bạn của bạn để lấy các giá trị nhận dạng được chèn vào:

-- use a table _temp_org_records for output
if object_id('_temp_org_records') is not null drop table _temp_org_records;

-- create table with correct column datatypes
select top 0 UserID
into _temp_org_records
from UserProductMapping


INSERT INTO User (userlogin, Organisationid, emailaddress, username, userpassword)
OUTPUT inserted.UserID INTO _temp_org_records --all USerIDs will be saved into _temp_org_records
    SELECT 'AGT' + Code, organisationid, '[email protected]', 'User' + Code, '123'
    FROM organisation;

INSERT INTO UserProductMapping (UserID, ProductID) 
    SELECT t.UserID, productid.value
    FROM 
        _temp_org_records t
        cross join (values ('11'),('22'),('33'),('44'),('55')) as productid(value)

INSERT UserGroups 
    SELECT t.UserID, UserGroup.value
    FROM 
        _temp_org_records t
        cross join (values ('1'),('3')) as UserGroup(value)



  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ách nào để thêm 2 Bảng khi sử dụng câu lệnh INSERT trong trình tạo truy vấn không?

  2. Đặt hàng theo và các loại khác nhau trong một TRƯỜNG HỢP

  3. Di chuyển một điểm dọc theo một đường dẫn trong SQL Server 2008

  4. Đã xảy ra lỗi liên quan đến mạng hoặc lỗi cụ thể đối với trường hợp cụ thể khi thiết lập kết nối với SQL Server

  5. Câu lệnh SQL từ Trình kích hoạt DML