我有一个循环运行的查询,我正在尝试以此进行优化
INSERT INTO myTable (col1, col2, col3)
OUTPUT inserted.id, SOURCE_ROW_ID_NEEDED_HERE
SELECT col1, col2, col3
FROM myTable
WHERE col2 = 20 --any value
我的问题是:col2 = 20可以插入N行,我需要新记录的源行ID。例如,说col3 = 20的行有3行,其中id为11,12,15。新插入的ID为150,151,152。
我需要
11 150
12 151
15 152
答案 0 :(得分:0)
您是否正在寻找类似的东西
CREATE TABLE T1(
Col1 INT IDENTITY(1, 1),
Col2 INT,
Col3 INT
);
CREATE TABLE T2(
Col1 INT IDENTITY(1, 1),
Col2 INT,
Col3 INT
);
INSERT INTO T2(Col2, Col3) VALUES
(11, 150),
(12, 151),
(15, 152);
DECLARE @TT TABLE (ID INT, Col2 INT);
SET IDENTITY_INSERT T1 ON;
INSERT INTO T1 (Col1, Col2, Col3)
OUTPUT INSERTED.Col1,
INSERTED.Col2
INTO @TT (ID, Col2)
SELECT Col1,
Col2,
Col3
FROM T2;
SELECT *
FROM @TT;
SET IDENTITY_INSERT T1 OFF;