Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Lorsque vous essayez d’insérer des données dans une table personnalisée, ou lorsque vous exécutez un processus qui insère des données dans une table personnalisée, vous recevez un message d’erreur qui ressemble à ce qui suit :

La ou SQL Server suivante s’est produite lors de l’accès à la table TableName :



1088, « 42000 », [Microsoft][Pilote SQL Server ODBC][SQL Server]Impossible de trouver l’objet «NAVDBName.dbo ».CompanyName$ TableName" car elle n’existe pas ou vous n’avez pas les autorisations.



SQL :

DÉFINISSEz IDENTITY_INSERT «NAVDBName». dbo " ». CompanyName$ TableName" ON

Remarque Dans cet exemple, TableName représente la table Microsoft Dynamics NAV du client. NAVDBName représente le nom de la base de données Microsoft Dynamics NAV du client. CompanyName représente le nom de société désigné du client dans Microsoft Dynamics NAV.



Ce problème peut se produire dans les versions de Microsoft Dynamics NAV qui utilisent l’option Microsoft SQL Server données.

Cause

Ce problème se produit si les conditions suivantes sont vraies :

  • Dans l’un des champs de la table indiqué dans le message d’erreur, la propriété Incrément automatique est définie sur Oui.

  • L’opération INSERT que vous utilisez remplit explicitement le champ dont la propriété AutoIncrement est définie sur Oui.

  • Vous ne pouvez pas obtenir l’une des autorisations suivantes :

    • Appartenance au rôle de serveur SYSADMIN dans SQL Server

    • L’appartenance db_owner rôle de base de données à la base de données Microsoft Dynamics NAV

    • L’appartenance db_ddladmin rôle de base de données à la base de données Microsoft Dynamics NAV

Résolution

Pour résoudre ce problème, utilisez l'une des méthodes suivantes.

Méthode 1


Modifiez l’opération INSERT de sorte qu’elle ne remplisse pas le champ dont la propriété AutoIncrement est définie sur Oui.

Méthode 2

Définissez la propriété Incrément automatique sur Non pour le champ pertinent.

Notez que les deux méthodes 1 et 2 peuvent nécessiter l’assistance d’un développeur Microsoft Dynamics NAV, en particulier si l’a modification du code nécessite un changement de code. Ces modifications doivent être testées de façon approfondie avant de les appliquer à une base de données Microsoft Dynamics NAV en direct.

Méthode 3

Accordez des autorisations modifier pour la table personnalisée au rôle d’application approprié (par exemple, &ndo$shadow, si vous avez sélectionné le modèle de sécurité Standard) dans SQL Server Management Studio.


Remarque : les autorisations accordées manuellement aux tables de SQL Server Management Studio sont écrasées lorsque vous exécutez une synchronisation de sécurité dans Microsoft Dynamics NAV. Par conséquent, vous devez accorder de nouveau des autorisations de modification à la table personnalisée après avoir exécuté la synchronisation de sécurité.

Informations supplémentaires

Dans Microsoft Dynamics NAV, si la propriété AutoIncrement est définie sur Oui pour un champ de type de données Integer ou pour un champ de type de données BigInteger, le champ approprié doit être automatiquement rempli par une valeur d’ensemble unique générée par le système. Valeur utilisée pour remplir le champ par incréments consécutifs pour chaque nouvel enregistrement inséré.

Pour implémenter la propriété AutoIncrement, Microsoft Dynamics NAV définit SQL Server colonne à qui la propriété IDENTITY est associée. La propriété IDENTITY entraîne SQL Server automatiquement remplir la colonne comme décrit précédemment. Si la propriété IDENTITY est désactivée pour une colonne SQL Server, les utilisateurs ne peuvent pas remplir explicitement la colonne pertinente dans une instruction INSERT, sauf si les utilisateurs ont l’une des autorisations suivantes :

  • Appartenance au rôle de serveur SYSADMIN dans SQL Server

  • L’appartenance db_owner rôle de base de données à la base de données Microsoft Dynamics NAV

  • L’appartenance db_ddladmin rôle de base de données à la base de données Microsoft Dynamics NAV

En plus de ces autorisations, les utilisateurs doivent exécuter la commande suivante pour que l’opération INSERT se termine.

SET IDENTITY_INSERT <table_name> ONWhen the error message that is mentioned in the « Symptoms » section occurs, Microsoft Dynamics NAV is trying to run this SET statement in SQL Server.

La méthode de remplir explicitement une colonne qui dispose de la propriété IDENTITY est une méthode qui n’est généralement pas obligatoire. Les colonnes qui ont la propriété IDENTITY sont généralement remplies automatiquement par SQL Server.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×