В голову еще приходит SQL filtered unique index:
X++:
create table MyTable (a int
, b nvarchar(10)
, Id int identity(1,1) primary key)
CREATE UNIQUE INDEX idx_MyTable_filtered
ON MyTable (b)
WHERE a = 1
/*Вставилось:*/
insert into MyTable (a,b) values
(0, 'AAAA'),
(0, 'AAAA'),
(0, 'AAAA'),
(1, 'BBBB')
/*Ошибка:*/
insert into MyTable (a,b) values
(1, 'BBBB')