Вместо использования DBCC CHECKCONSTRAINTS при повторном включении ограничений используйте параметр WITH CHECK
.
ALTER TABLE YourTable WITH CHECK CHECK CONSTRAINT YourConstraint;
В случае нарушения вы получите сообщение об ошибке:
Msg 547, Level 16, State 0, Line 15
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "YourConstraint". The conflict occurred in database "YourDatabase", table "YourTable", column 'YourColumn'.
Используйте приведенный ниже пример кода для простой демонстрации.
use tempdb
go
create table a (
id int primary key
)
create table b (
id int
)
alter table b add constraint x foreign key (id) references a(id)
alter table b nocheck constraint x
insert into b (id) values (1)
alter table b with check check constraint x
go
drop table b
drop table a
go