Мы хотели бы предотвратить рекордное дублирование в нашей базе данных доступа MS с помощью многостолбцового уникального индекса. Из-за того, как отправляются данные (через сеть), дублирующиеся данные иногда получаются. Источник данных не отправляет уникальный идентификатор, таким образом, самая простая опция состоит в том, чтобы предотвратить дублирующиеся вставляемые записи.
Согласно руководству по проектированию уникального индекса:
С многостолбцовыми уникальными индексами индекс гарантирует, что каждая комбинация значений в индексном ключе уникальна. Например, если уникальный индекс создается на комбинации LastName, FirstName и столбцов MiddleName, никакие две строки в таблице не могли иметь ту же комбинацию значений для этих столбцов.
Это - для SQL 2005 однако, таким образом, я не уверен, что это - возможное использование доступ MS.
Я предполагаю, что альтернатива должна, возможно, использовать запрос (псевдо код):
insert into foobar (a, b, c) values ('x', 'y', 'z')
where (a <> 'x') and (b <> 'y') and (c <> 'z')
... но я чувствую, что индекс был бы лучше.
Откройте таблицу в представлении дизайна в MS Access, выберите три столбца, которые вы хотите вносить в уникальный индекс, а затем нажмите на маленькую клавишу на панели инструментов. Вы не можете иметь нулевые значения в первичном ключ (набор).
Оказывается, вы можете создать многостолбцовый уникальный индекс в базе данных доступа MS, но это немного безумно, если вы хотите сделайте это через графический интерфейс. Также есть ограничение; вы можете использовать только 10 столбцов для каждого индекса.
В любом случае, вот как можно создать уникальный индекс с несколькими столбцами в базе данных доступа MS.
Вот как это должно выглядеть: