ACC2000: Actualizar consultas em tabelas ligadas adiciona valores GUID incorrecto

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
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).

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 MakeTestTablesAsif 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.ColBFROM 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
pra não corrigir incorrecto não não

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 248907 - Última Revisão: 02/06/2014 05:30:26 - Revisão: 3.0

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix KB248907 KbMtpt
Comentários