Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблемы

При попытке вставить данные в настраиваемую таблицу или при запуске процесса вставки данных в настраиваемую таблицу выводится сообщение об ошибке, похожее на следующее:

При доступе к SQL Server TableName произошли следующие ошибки:



1088, "42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Не удается найти объект "NAVDBName.dbo.CompanyName$ TableName" из-за того, что оно не существует или у вас нет разрешений.



SQL: SET

IDENTITY_INSERT "NAVDBName"." dbo". CompanyName$ TableName" ON

Примечание. В этом примере TableName представляет таблицу Microsoft Dynamics NAV клиента. NaVDBName представляет имя базы данных Microsoft Dynamics NAV клиента. CompanyName обозначает название компании клиента в Microsoft Dynamics NAV.



Эта проблема может возникнуть в версиях Microsoft Dynamics NAV, в Microsoft SQL Server базы данных.

Причина

Подобное поведение наблюдается, если выполняются указанные ниже условия.

  • В одном из полей таблицы, указанных в сообщении об ошибке, свойство AutoIncrement имеет свойство Да.

  • Операция INSERT явно заполняет поле, для свойства AutoIncrement которых за установлено да.

  • У вас нет одного из следующих разрешений:

    • Роль сервера SYSADMIN в SQL Server

    • Членство db_owner базы данных для базы данных Microsoft Dynamics NAV

    • Членство db_ddladmin для базы данных Microsoft Dynamics NAV

Решение

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

Способ 1


Применив операцию INSERT, не заполнять поле со свойством AutoIncrement (Автозапреждение) в поле Да.

Способ 2

Для свойства AutoIncrement (Автоматическое приращение) установите для соответствующего поля значение Нет.

Примечание. Для обоих методов 1 и 2 может потребоваться помощь разработчика Microsoft Dynamics NAV, особенно если требуется изменить код. Эти изменения следует тщательно проверить, прежде чем применять их к динамической базе данных Microsoft Dynamics NAV.

Способ 3

Предоставление разрешения Alter для настраиваемой таблицы соответствующей роли приложения (например, &NDO$shadow, если вы выбрали стандартную модель безопасности) в SQL Server Management Studio.


Примечание. Разрешения, предоставленные вручную таблицам из SQL Server Management Studio перезаписываются при запуске синхронизации безопасности в Microsoft Dynamics NAV. Таким образом, после запуска синхронизации безопасности вам необходимо снова предоставить настраиваемой таблице разрешение Alter permissions (Изменить разрешения) для настраиваемой таблицы.

Дополнительная информация

Если свойство AutoIncrement в Microsoft Dynamics NAV имеет значение Да для поля типа данных Типа данных типа "Integer" или для поля типа данных BigInteger, соответствующее поле должно автоматически заполняться уникальным значением, которое генерируется системой. Значение, которое используется для последовательного заполнения полей для каждой вставленной записи.

Чтобы реализовать свойство AutoIncrement, Microsoft Dynamics NAV определяет столбец SQL Server, который имеет свойство IDENTITY, связанное с ним. Свойство IDENTITY SQL Server заполнять столбец автоматически, как описано выше. Если свойство IDENTITY включено для столбца SQL Server, пользователи не смогут явно заполнить соответствующий столбец в заявлении INSERT, если у пользователей нет одного из следующих разрешений:

  • Роль сервера SYSADMIN в SQL Server

  • Членство db_owner базы данных для базы данных Microsoft Dynamics NAV

  • Членство db_ddladmin для базы данных Microsoft Dynamics NAV

Для завершения операции INSERT пользователи должны не только иметь эти разрешения, но и выполнить следующую команду:

SET IDENTITY_INSERT <table_name> ON.Когда возникает сообщение об ошибке, упомянутое в разделе "Симптомы", Microsoft Dynamics NAV пытается выполнить это заявление SET в SQL Server.

Метод явного заполнения столбца, у которых есть свойство IDENTITY, обычно не является требуемым. Столбцы со свойством IDENTITY обычно заполняются автоматически SQL Server.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×