我想为与特定查询条件匹配的每条记录插入具有唯一 ID 的列 1(在创建的两个记录中)的多条记录(两个是特定的)。插入的其余值应从查询的相应列中提取。在第一次插入 Column2 将是来自 Column1 的原始值,在第二次插入 Column2 将是来自 Column2 的原始值。
理想情况下,我追求的是:
FIND RECORDS THAT MEETS CRITERIA
FOR EACH RECORD
GENERATE GUID
INSERT TWO NEW RECORDS WITH GUID AS COLUMN1, AND REMAINING COULMNS FROM
CURRENT RECORD FOUND
RECORDS
123 abc 3 4 5
456 def 6 7 8
RECORD 1
123 abc 3 4 5
NEW RECORDS AFTER INSERTS
UID1 123 3 4 5
UID1 abc 3 4 5
ROW 2
456 def 6 7 8
NEW RECORDS AFTER INSERTS
UID2 456 6 7 8
UID2 def 6 7 8
下面的 INSERT SELECT FROM 完全可以处理我想要做的事情,但只针对每条找到的记录进行一次插入。
INSERT INTO table1
(
Column1,
Column2,
Column3
Column4
Column5
)
SELECT
NEWID(), -- unique ID
Column2, -- or Column1 based on which insert we are doing
Column3, -- always column 3
Column4, --always column 4
Column5 -- always column 5
FROM
table1
WHERE Column1 IS NOT NULL
AND Column1 != Column4
有没有一种简单的方法可以通过 TSQL 做到这一点?我需要它批量运行,以获取满足查询条件的数千条记录。