Vous ne pouvez pas utiliser de requêtes dans un projet Access dans Access 2002 Ajout migrée

Traductions disponibles Traductions disponibles
Numéro d'article: 294923 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Options avancées : nécessite codage expert, de l'interopérabilité et de compétences multi-utilisateur.

Cet article s'applique uniquement à un projet Microsoft Access (.adp).

Pour une version de Microsoft Access 2000 de cet article, voir 229681.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous essayez d'exécuter un objet d'une migration requête dans un projet Microsoft Access Ajout, la message d'erreur suivant peut s'afficher :
Impossible d'insérer valeur explicite d'une colonne d'identité dans la table ' nom de la table ' lorsque IDENTITY_INSERT est défini sur DÉSACTIVÉ.

Cause

Lorsque vous créez une nouvelle base de données SQL Server (y compris SQL Server 2000 Desktop Engine), les options IDENTITY_INSERT sont définies pour la DÉSACTIVER .

Si vous faites migrer une table Microsoft Access qui contient un champ de données NuméroAuto tapez, le champ est créé dans SQL Server sous la forme d'une colonne IDENTITY. Contrairement au type de données NuméroAuto, vous ne pouvez pas modifier directement les colonnes IDENTITY, ni insérer explicitement des données dans une colonne IDENTITY lorsque l'option IDENTITY_INSERT pour cette table est définie à DÉSACTIVER . Pour insérer ou mettre à jour données dans une colonne IDENTITY, vous devez définir l'option IDENTITY_INSERT à ON .

Résolution

Vous pouvez utiliser l'instruction SET IDENTITY_INSERT pour définir l'option IDENTITY_INSERT . SET IDENTITY_INSERT fait toujours référence une table et vous devez le placer avant l'instruction UPDATE ou INSERT qui modifie ou insère des données dans une colonne IDENTITY. L'exemple suivant montre comment définir IDENTITY_INSERT pour la table NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Plus d'informations

Procédure pour reproduire le comportement

  1. Ouvrez la base de données exemple Comptoir.mdb sera modifiée.
  2. Dans la fenêtre base de données, cliquez sur la table Employés, puis cliquez sur Copier dans le menu Edition .
  3. Dans le menu Edition , cliquez sur Coller . Dans la boîte de dialogue Coller la table sous , tapez NewEmployees dans la zone Nom de la table . Cliquez sur OK .
  4. Créer une nouvelle requête en mode Création, puis fermez la boîte de dialogue Afficher la table sans ajouter de tables ou requêtes.
  5. Dans le menu Affichage , cliquez sur mode SQL.
  6. Tapez l'instruction INSERT INTO suivante dans la fenêtre SQL. Cette instruction va créer une requête Ajout :
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City,
              Employees.Region, Employees.PostalCode, Employees.Country,
              Employees.HomePhone, Employees.Extension, Employees.Photo,
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees;
    					
  7. Enregistrer la requête en tant que qryAppend , puis fermez la requête.
  8. Dans le menu Outils , pointez sur Utilitaires de base de données , puis cliquez sur Assistant de migration .
  9. Suivez les étapes décrites dans l'Assistant de migration et accepter les sélections par défaut, sauf comme indiqué ci-dessous :
    Créer une nouvelle base de données : Oui
    Quelles tables voulez-vous exporter vers SQL Server : Exporter toutes les tables
    Ajouter des champs d'horodatage à des tables : non, jamais
    Créer une nouvelle application client/serveur Access : Oui
  10. Lorsque l'Assistant de migration est terminé, fermez l'état de migration.
  11. Essayez d'exécuter la procédure qryAppend stockée et notez les message d'erreur.
  12. Pour IDENTITY INSERT sur , ajoutez la ligne suivante de SQL à la procédure qryAppend stockée directement après le mot-clé AS :
       SET IDENTITY_INSERT NewEmployees ON
    						
    lorsque vous avez terminé, votre procédure stockée doit ressembler au texte suivant :
       ALTER PROCEDURE qryAppend
       AS
       SET IDENTITY_INSERT NewEmployees ON
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City, 
              Employees.Region, Employees.PostalCode, Employees.Country, 
              Employees.HomePhone, Employees.Extension, Employees.Photo, 
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees
    					
  13. Enregistrer la procédure stockée modifiée, puis exécutez-le. Notez qu'il a réussi.

Références

Pour plus d'informations sur IDENTITY INSERT , reportez-vous à la documentation en ligne de SQL Server. Pour télécharger la documentation en ligne de SQL Server, reportez-vous au site de Web Microsoft suivant :
http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

Propriétés

Numéro d'article: 294923 - Dernière mise à jour: samedi 1 février 2014 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2002
Mots-clés : 
kbnosurvey kbarchive kbmt kbclientserver kberrmsg kbprb KB294923 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 294923
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com