Append, ACC2000 : Requête sur des tables attachées ajoute des valeurs GUID incorrectes

Traductions disponibles Traductions disponibles
Numéro d'article: 248907 - 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.
Avancé : Nécessite une matière de programmation, l'interopérabilité et compétences multi-utilisateur.

Cet article s'applique uniquement à une base de données Microsoft Access (.mdb).

Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous avez une requête Ajout qui prend des valeurs à partir d'une table SQL Server attachée contenant un champ de type UniqueIdentifier et ajoute les valeurs à une autre table de SQL Server liée. Lorsque vous ouvrez la table à laquelle les enregistrements sont ajoutés, vous constatez que le champ UniqueIdentifier pour chaque enregistrement ajouté contient des valeurs différentes de celles de la table source.

Résolution

Procurez-vous le dernier service pack Microsoft Jet 4.0 qui contient une version mise à jour du moteur de base de données Microsoft Jet 4.0.

Pour plus d'informations sur la façon d'obtenir la dernière version du moteur de base de données Jet 4.0, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
239114Comment : Obtenir le dernier Service Pack pour le moteur de base de données Microsoft Jet 4.0

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés au début de cet article.

Plus d'informations

Procédure pour reproduire le problème

  1. Utilisez Microsoft SQL Server 7.0 Enterprise Manager ou Access 2000 pour ouvrir la base de données exemple Les Comptoirs (connectez-vous en tant que propriétaire de la base de données).
  2. Utilisez la syntaxe SQL suivante pour créer une nouvelle procédure stockée. Cette procédure crée deux tables de test dans la base de données SQL Server ou MSDE.
    Create Procedure MakeTestTables
    
    As
    
    if exists (select * from sysobjects where id =
    object_id(N'[dbo].[GUID_Test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[GUID_Test]
    
    if exists (select * from sysobjects where id =
    object_id(N'[dbo].[GUID_Test2]') and OBJECTPROPERTY(id, N'IsUserTable') =
    1)
    drop table [dbo].[GUID_Test2]
    
    CREATE TABLE [dbo].[GUID_Test] (
    	[ColA]  uniqueidentifier ROWGUIDCOL  NOT NULL ,
    	[ColB] [varchar] (50) NULL )            
                ON [PRIMARY]
    
    ALTER TABLE [dbo].[GUID_Test] WITH NOCHECK ADD 
    	CONSTRAINT [PK_GUID_Test] PRIMARY KEY  NONCLUSTERED 
    	([ColA])
                ON [PRIMARY] 
    
    CREATE TABLE [dbo].[GUID_Test2] (
    	[ColA] [uniqueidentifier] NULL ,
    	[ColB] [varchar] (50) NULL ) 
                ON [PRIMARY]
    
    INSERT INTO GUID_TEST VALUES ('{DBAB6FFE-82B2-4D65-819E-32DD4D904C51}',
    'TESTRECORD1')
    INSERT INTO GUID_TEST VALUES ('{DBAB6FFE-82B2-4D65-819E-32DD4D904C52}',
    'TESTRECORD2')
    INSERT INTO GUID_TEST VALUES ('{DBAB6FFE-82B2-4D65-819E-32DD4D904C53}',
    'TESTRECORD3')
    
    return
    					
  3. Enregistrez et fermez la procédure stockée. Acceptez le nom par défaut de MakeTestTables, puis exécutez la procédure en double-cliquant dessus.
  4. Ouvrez Access 2000 et créez une nouvelle base de données Access appelée MonTest.mdb. Dans le menu fichier, pointez sur Données externes et cliquez sur Lier les tables.
  5. Dans la boîte de dialogue liaisons, modifiez la zone type de fichier à des Bases de données ODBC.
  6. Dans la boîte de dialogue Sélectionner la source de données, ouvrez ou créez un nom de source de données (DSN) pointant vers les Comptoirs.
  7. Créer des liens vers les tables GUID_Test et GUID_Test2 sur le serveur. Laissez les tables liées avec les noms dbo_GUID_Test et dbo_GUID_Test2. Si vous êtes invité à une colonne d'index, sélectionnez ColA.
  8. Créer une nouvelle requête en mode Création, mais n'ajouter aucune table.
  9. Dans la grille de création, cliquez sur Mode SQL dans le menu affichage.
  10. Tapez l'instruction SQL suivante :
    INSERT INTO dbo_GUID_Test2 (ColA, ColB)
    SELECT dbo_GUID_Test.ColA, dbo_GUID_Test.ColB
    FROM dbo_GUID_Test;
    					
  11. Enregistrez et exécutez la requête.
  12. Ouvrez les dbo_GUID_Test dbo_GUID_Test2 tables et. Taille des fenêtres et des colonnes afin que vous puissiez voir leur contenu entier en même temps.
Notez que les valeurs GUID insérées dans dbo_GUID_Test2.ColA ne correspondent pas les valeurs GUID dbo_GUID_Test.ColA.

Références

Pour plus d'informations sur un autre problème impliquant des tables liées avec des champs UniqueIdentifier, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
253837ACC2000: # supprimé dans une table liée contenant UniqueIdentifier

Propriétés

Numéro d'article: 248907 - Dernière mise à jour: vendredi 14 février 2014 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbnosurvey kbarchive kbmt kbbug kbfix KB248907 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: 248907
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