ЕСЛИ НЕ СУЩЕСТВУЕТ в операторе слияния?

Я хочу сделать следующее, когда совпадают первичные ключи и нет строк с активными ' Y 'вставить записи. Возможно ли это?

Я пробовал следующее:

-- Merge statement
MERGE INTO table1 AS DST
USING table2 AS SRC
ON (SRC.Code = DST.Code)

 --Existing records updated if data changes
WHEN MATCHED 
AND IF NOT EXISTS (WHERE active='Y' FROM table1 )

THEN
INSERT INTO table1 (colum)
SELECT value

+-------+-------------+--------+
| Code  | description | Active |
+-------+-------------+--------+
| AB    | just        |    |
|       |  something  | No     |
+-------+-------------+--------+

только когда нет активной записи с таким же кодом, я хочу вставить запись. Новая запись будет выглядеть так

+-------+-------------+--------+
| Code  | description | Active |
+-------+-------------+--------+
| AB    | something   |    |
|       | else        | YES    |
+-------+-------------+--------+

Я надеюсь, что это проясняет

edit: Неважно, что это невозможно, я только что получил это сообщение об ошибке: Действие типа 'INSERT' запрещено в предложении WHEN MATCHED оператора MERGE.

5
задан R2D2 22 November 2011 в 11:17
поделиться