ACC2000: Actualizar consultas em tabelas ligadas adiciona valores GUID incorrecto

Traduções de Artigos Traduções de Artigos
Artigo: 248907 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Tem uma consulta Acrescentar que leva os valores de uma tabela do SQL Server ligada que contém um campo do tipo UniqueIdentifier e acrescenta os valores de outra tabela do SQL Server. Quando abrir a tabela à qual os registos são acrescentados, irá descobrir que o campo UniqueIdentifier para cada registo acrescentado contém valores diferentes na tabela de origem.

Resolução

Obter o Microsoft Jet 4.0 service pack mais recente que contenha uma versão actualizada do motor de base de dados Microsoft Jet 4.0.

Para obter informações adicionais sobre como obter a versão mais recente do motor de base de dados Jet 4.0, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
239114Como: Obter o Service Pack mais recente para o motor de base de dados Microsoft Jet 4.0

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Passos para reproduzir o comportamento

  1. Utilize o Microsoft SQL Server 7.0 Enterprise Manager ou Access 2000 para abrir a base de dados exemplo AdamastorCS (sessão como proprietário da base de dados).
  2. Utilize a seguinte sintaxe SQL para criar um novo procedimento armazenado. Este procedimento cria duas tabelas de teste na base de dados 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. Guarde e feche o procedimento armazenado. Aceite o nome predefinido MakeTestTables e, em seguida, execute o procedimento fazendo duplo clique nele.
  4. Abra o Access 2000 e crie uma nova base dados Access denominada MyTest.mdb. No menu ficheiro , aponte para Obter dados externos e, em seguida, clique em Ligação de tabelas .
  5. Na caixa de diálogo ligar , altere a caixa ficheiros do tipo para Bases de dados de ODBC .
  6. Na caixa de diálogo Seleccionar origem de dados , abra ou crie um nome de origem de dados (DSN) que aponta para AdamastorCS.
  7. Crie ligações às tabelas GUID_Test e GUID_Test2 no servidor. Deixe as tabelas ligadas com nomes dbo_GUID_Test e dbo_GUID_Test2. Se lhe for pedido para uma coluna de índice, seleccione ColA .
  8. Criar uma nova consulta na vista de estrutura, mas adicionar não tabelas.
  9. Na grelha de estrutura da consulta, clique em Vista de SQL no menu Ver .
  10. Escreva a seguinte instrução de SQL:
    INSERT INTO dbo_GUID_Test2 (ColA, ColB)
    SELECT dbo_GUID_Test.ColA, dbo_GUID_Test.ColB
    FROM dbo_GUID_Test;
    					
  11. Guarde e execute a consulta.
  12. Abra o dbo_GUID_Test e dbo_GUID_Test2 tabelas. Dimensione as janelas e as colunas de modo a pode ver o respectivo conteúdo todo ao mesmo tempo.
Tenha em atenção que os valores GUID inseridos dbo_GUID_Test2.ColA não correspondem valores GUID dbo_GUID_Test.ColA.

Referências

Para obter informações adicionais sobre outro problema que envolvam tabelas ligadas com UniqueIdentifier campos, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
253837ACC2000: # eliminados na tabela ligada com UniqueIdentifier

Propriedades

Artigo: 248907 - Última revisão: 6 de fevereiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbfix KB248907 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 248907

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