Я хочу вставить несколько записей (две, чтобы быть конкретными) с уникальным идентификатором для столбца 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? Мне нужно, чтобы он запускался массово, так как потенциально тысячи записей удовлетворяют условиям запроса.
NEWID
? - person SQLChao   schedule 03.10.2017