У меня есть две одинаковые таблицы, одна со всеми данными, а другая содержит подмножество первого. Каждые 2-3 дня мне нужно вставить во второй таблице недостающих значений, и я использую этот кодТаблица обновления SQL-сервера с отсутствующими значениями
INSERT INTO [SRVDB2].[dbt].[curve].[curve_value]
SELECT *
FROM [SRVDB1].[dbt].[curve].[curve_value] as DB01
WHERE TargetDate >= '20150505'
and NOT EXISTS (SELECT *
FROM [SRVDB2].[dbt].[curve].[curve_value] as DB02
WHERE DB02.TargetDate = DB01.TargetDate
and DB02.[Hour] = DB01.[Hour]
and DB02.[id_Mkt] = DB01.[id_Mkt]
and DB02.[Price] = DB01.[Price]
and DB02.VoSe = DB01.VoSe
and DB02.VoBu = DB01.VoBu
)
Он всегда работал, но теперь у меня есть несколько строк с NULL
в колонке VoSe
или VoBu
и эти значения не являются (даже если выполнение только инструкции SELECT
, похоже, возвращает все различия). Как я могу справиться с этим?
мне нужно добавить скобки '((DB02.VoSe IS NULL И DB01.VoSe IS NULL) ИЛИ DB02.VoSe = DB01.VoSe) 'и код работал нормально, спасибо – Naigel
@Naigel Спасибо, что заметили отсутствующие скобки, я обновил ответ – dotnetom