如何在 SQL 中包含带有 OUTPUT 的参考列

How to include a reference column with the OUTPUT in SQL

我有一个引用 TableA,其中有一个名为 [SomeID]:

的列
SomeID
ABC
DEF
GHI
KLM

我有TableB 可以是:

CREATE TABLE TableB([ID] BIGINT, [Name] NVARCHAR(50))

[ID]为主键,自增

我想在 TableB 中为 TableA 的每条记录创建一条新记录。

所以我们这样做:

DECLARE @OuputTable TABLE([ID] BIGINT, [SomeID] NVARCHAR(50))

INSERT INTO TableB([Name])
OUTPUT INSERTED.[ID], 'Need Associated SomeID From TableA Here' INTO @OutputTable
SELECT 'ZZZZZZ' -- Edited this line to remove some possible confusion.
FROM TableA

SELECT *
FROM
@OuputTable

如何在不使用循环?

您可以尝试使用 MERGE INTO,这可能允许您在 OUTPUT

中获取源数据值
MERGE INTO TableB AS dest
USING TableA AS sou ON 1=0   
WHEN NOT MATCHED       
    THEN INSERT ([Name])
         VALUES (sou.[SomeID])
OUTPUT INSERTED.[ID], sou.SomeID
INTO @OutputTable (ID, SomeID);

sqlfiddle