вы можете использовать триггер, чтобы предотвратить добавление новых строк с дублирующимися значениями
посмотрите на этот пример
create trigger TR_UI_YourTable on YourTable
for update, insert as
begin
set nocount on
if exists (select 1 from inserted i where i.InventoryId = i.RevisionId)
begin
;throw 99001, 'no dupes allowed anymore...', 1
end
end
Лучшим решением было бы переместить дубликаты в отдельную таблицу дляистория, а затем добавить проверочное ограничение на эти 2 столбца
РЕДАКТИРОВАТЬ
вы можете сделать это с помощью проверочного ограничения, как это
alter table yourtable
add constraint chk_dupes
check ((InventoryId <> RevisionId) or (id <= 12345))
где 12345 - самое высокое значение столбца id
.
Вам придется немного его проверить, если он работает во всех ситуациях.
Кроме того, он будет работать, только если все новые строки имеют значение в id
больше текущего максимального значения (12345 в моем примере)