Связанная таблица Microsoft Access (ASE) с ошибкой триггера - PullRequest
0 голосов
/ 02 мая 2018

У меня в Microsoft Access есть связанная таблица с сервером ASE. На стороне сервера таблица не имеет столбцов первичного ключа или идентификатора. И имеет триггер на вставке, который проверяет новые записи, так что, когда запись не проверена, она удаляет запись из таблицы и записывает в «таблицу» _ERR, чтобы сообщить пользователям, какая ошибка возникла.

При привязке его к Access составной ключ создается с использованием 10 столбцов.

У меня такая же настройка в 10 разных таблицах (все с триггерами, все связаны с Access)

В этой конкретной таблице при попытке вставить / добавить записи в таблицу через Access, я всегда получаю сообщение об ошибке:

Обновление / удаление одной строки затронуло более одной строки связанной таблицы. Уникальный индекс содержит повторяющиеся значения.

Эта ошибка возникает, когда таблица и table_ERR пусты, и я только пытаюсь вставить 1 запись.

Если я отключу триггер, у меня не будет проблем с вставкой записей через Access

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

Я читал, что MS Access может испортить идентификатор @@, даже при том, что ни одно из представленных в сети решений не работает.

ссылки: https://groups.google.com/forum/#!msg/microsoft.public.sqlserver.programming/McHdRpPKMhs/SlyObU8w7JMJ

Остановить доступ от использования неверного идентификатора при добавлении в связанную таблицу на сервере SQL

Заранее спасибо.

РЕДАКТИРОВАТЬ: если я пытаюсь вставить записи непосредственно из программного обеспечения для управления (например, Aqua Data Studio), ошибки не возникает

1 Ответ

0 голосов
/ 02 мая 2018

Не зная дополнительных подробностей о ваших данных, трудно сказать, почему это может происходить.

Однако в данном конкретном случае для этой конкретной связанной таблицы звучит так, что ваши 10 столбцов недостаточно уникальны, чтобы предотвратить выбор не различимых строк.

Предлагаемые исправления:

  1. Добавить первичный ключ . Честно говоря, наверное, лучший и самый простой выбор.
  2. Если по какой-либо причине вы не можете добавить новый столбец (или изменить) свою таблицу; возможно, вы сможете заново связать свою таблицу и заново выбрать 10 столбцов, чтобы они были более уникальными.
  3. Кроме того, я думаю, нам понадобится дополнительная информация.

Просто из любопытства, в чем причина отсутствия ключа?

...