Я хочу убедиться, что я не вставляю повторяющуюся строку в свою таблицу (например, только для первичного ключа). Все мое поле разрешает NULLS, поскольку я решил, что null означает "все значения". Из-за нулей следующий оператор в моей хранимой процедуре не может работать:
IF EXISTS(SELECT * FROM MY_TABLE WHERE
MY_FIELD1 = @IN_MY_FIELD1 AND
MY_FIELD2 = @IN_MY_FIELD2 AND
MY_FIELD3 = @IN_MY_FIELD3 AND
MY_FIELD4 = @IN_MY_FIELD4 AND
MY_FIELD5 = @IN_MY_FIELD5 AND
MY_FIELD6 = @IN_MY_FIELD6)
BEGIN
goto on_duplicate
END
поскольку NULL = NULL неверно.
Как проверить дубликаты без инструкции IF NULL для каждого столбца?