Вы должны быть осторожны, работая с набором данных, а не только с одной записью за раз:
INSERT INTO tblHistorySource
SELECT *
FROM DELETED INNER JOIN
INSERTED ON <<DELETED.PK = INSERTED.PK>>
WHERE DELETED.StatusValue <> INSERTED.StatusValue;
Условие соединения <<DELETED.PK = INSERTED.PK>>
потребуется адаптировать к вашей схеме, так же как и настоящее имя StatusValue
.
Если StatusValue
обнуляем (спасибо Алекс), используйте вместо этого:
WHERE DELETED.StatusValue <> INSERTED.StatusValue
OR DELETED.StatusValue IS NULL AND INSERTED.StatusValue IS NOT NULL
OR DELETED.StatusValue IS NOT NULL AND INSERTED.StatusValue IS NULL;
Какиевозможно, можно упростить использование оболочки ISNULL()
, но мне нужно знать тип данных.