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

Chọn từ một bảng và chèn vào hai bảng khác

Tôi nghĩ rằng bạn muốn một cái gì đó giống như dưới đây. Bảng tạm thời @Output sẽ ghi lại các thông tin nhận dạng được chèn cho bảng đầu tiên, sau đó chúng có thể được sử dụng khi chèn vào bảng thứ hai.

DECLARE @Output TABLE 
(       FirstTableID    INT NOT NULL PRIMARY KEY, 
        WarehouseCode   VARCHAR(3), 
        CustomerCode    VARCHAR(4)
)
INSERT INTO FirstTable (WarehouseCode, CustomerCode)
OUTPUT inserted.FirstTblID, inserted.WarehouseCode, inserted.CustomerCode INTO @Output
SELECT  DISTINCT LEFT(LocationCode, 3) [WarehouseCode], CustomerCode
FROM    [PrimaryTable]

INSERT INTO SecondTable (ItemCode, LocationCode, CustomerCode, FirstTblID)
SELECT  p.ItemCode,
        p.LocationCode,
        p.CustomerCode, 
        o.FirstTableID
FROM    [PrimaryTable] p
        INNER JOIN @Output o
            ON LEFT(LocationCode, 3) = WarehouseCode
            AND p.CustomerCode = o.CustomerCode



  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 2008 địa lý Giới hạn kích thước chuỗi

  2. Cách liên kết cơ sở dữ liệu Access với SQL Server trong Access 2016

  3. sp_add_schedule so với sp_add_jobschedule trong SQL Server:Sự khác biệt là gì?

  4. Sử dụng SSIS, Làm cách nào để tìm các thành phố có dân số đông nhất?

  5. Cú pháp cho giá trị mặc định cho loại do người dùng xác định dưới dạng bảng