Я бы порекомендовал для этого триггер перед удалением.Что-то вроде
create trigger tr_tableA_progressId
on TableA for Delete
as
if exists
(select 'true'
from dbo.TableB
where TableB.progressID = (select progressID
from deleted d))
BEGIN
RAISERROR 'Cannot delete progressId exists in TableB'
ROLLBACK TRAN
End
Я не знаю ограничений, которые приведут в исполнение то, что вы хотели бы.