Используя SQL Server 2K8 R2, у меня есть две связанные таблицы - Член и Анкета.Каждая таблица имеет BigInt PK с именем ID.Анкета имеет MemberID, чтобы вернуться к участнику, который находится в процессе заполнения формы. Со временем участник может заполнить анкету много раз.Бизнес-требование состоит в том, чтобы каждый участник заполнял анкету максимум один раз в год.AFAIK это не может быть решено с помощью простого CHECK CONSTRAINT
.
Есть ли "чистый" способ сделать это?Я надеюсь не делать что-то вроде следующего:
CREATE TRIGGER tr_Questionnaire_Insert
ON Questionnaire
INSTEAD OF INSERT
AS BEGIN
-- Check for a violation of once questionnaire per calendar year and if found, call RAISERROR
-- Otherwise continue with INSERT
END;
Причина, по которой я не хочу использовать этот подход, в первую очередь потому, что он требует меня (или кто бы ни будет поддерживать это решение в течение длительного времени).термин) помнить, чтобы сохранить триггер, если схема для вопросника должна измениться.