Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изберете от една таблица и вмъкнете в други две таблици

Мисля, че искате нещо като по-долу. Временната таблица @Output ще улови вмъкнатите самоличности за първата таблица, след което те могат да се използват при вмъкване във втората таблица.

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

  2. VB.NET - Неуспешно преобразуване на стойност на параметър от низ в проблем с Guid

  3. Закръгляване на милисекунди в T-SQL

  4. Как да пуснете колона с ограничение в SQL Server

  5. Как да конвертирате низ от дата и час без разделители в SQL Server като дата и час?