SQL SERVER Проверка ограничения - Запрос других строк - PullRequest
2 голосов
/ 05 декабря 2011

Я хочу применить бизнес-правило к моей таблице базы данных, чтобы гарантировать, что строка не может быть вставлена, если таблица уже содержит строки, соответствующие определенным критериям.

Хотел использовать ограничение CHECK, но подозреваю, что это может быть сделано через триггер.

Есть ли способ сделать это через ограничение CHECK? ИЛИ Есть ли другой способ сделать это на уровне базы данных без использования триггера?

1 Ответ

2 голосов
/ 05 декабря 2011

В зависимости от ваших конкретных критериев (которыми вы еще не поделились), вы можете создать уникальный отфильтрованный индекс.

Обычно это быстрее, чем функции или другие обходные пути.

Общий формат будет:

CREATE UNIQUE NONCLUSTERED INDEX ix_IndexName ON MyTable (FieldstoIndex)
WHERE <filter to only include certain rows>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...