У меня относительно простая хранимая процедура, которая запускает вставку, а затем пытается вернуть последний вставленный идентификатор.Это сделано, чтобы я мог идентифицировать с помощью SCOPE_IDENTITY ().Это прекрасно сработало для меня.Но затем я получил сообщения о том, что на некоторых машинах сохраненный процесс может привести к дублированию результатов.
После исследования я обнаружил, что причиной является использование свойства ReturnsRecords.Когда true, он будет выполнять запрос дважды!Для выбора;какая разница.Для этого случая, однако, это вызывает дубликаты в моей базе данных.
Установка falsesRecords равным false устраняет проблему, но затем она отрицает цель сохраненного процесса (я абсолютно должен получить правильный последний вставленный идентификатор длязапись)!
У меня такой вопрос: как мне вставить эту запись и получить идентификатор новой записи, обойдя эту проблему?
Дополнительная информация:
- В настоящее время я использую DAO
- Я попробовал метод ADO.Command, но он очень подвержен ошибкам и, похоже, не работает с выходными параметрами для меня.
- Я использую хранимый процесс исключительно с целью сохранения объема.Я не настроен на использование сохраненного процесса.Мне просто нужен надежный способ получить идентификатор последней вставленной строки.
- Это ACCDB
- Это происходит в Access 2007
- Моя база данных БД - MSSQL Server 2008
Любая помощь или понимание приветствуется.