Когда строка Выбранный из OperatorOption
еще не существует в OperatorOption
?
Если вы говорите, что этот код не вставляется - вы правы, что нетt потому что строка должна быть там для начала (в этом случае она не будет вставлена), или строка не там для начала, и в этом случае в исходном наборе данных нет ничего для вставки.
1009 *
SELECT *
FROM dbo.OperatorOption
WHERE OperatorID = @OperatorID
возвращает что-нибудь или нет?
Это не работает так, как вы думаете.В исходном CTE ничего нет.
Ответом на «пустой набор данных, отсутствующий в цели» является «Нет», поэтому ничего не вставлено
Для выполнения этой операции я использую эту конструкцию:
INSERT INTO dbo.OperatorOption
(OperatorID, PrescriptionPrintingAccountID, CurrentCalendarView)
SELECT @OperatorID, NULL, @CurrentCalendarView
WHERE NOT EXISTS (
SELECT * FROM dbo.OperatorOption
WHERE OperatorID = @OperatorID
)