Você está offline; aguardando reconexão

CORRECÇÃO: Uma instrução SELECT retorna um conjunto de resultado incorreto se um servidor vinculado está sendo usado no SQL Server 2005 ou no SQL Server 2008

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 975417
A Microsoft distribui correções do Microsoft SQL Server 2005 como um arquivo para download. Porque as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2005 anteriores corrigir lançamento.A Microsoft distribui correções do Microsoft SQL Server 2008 como um arquivo para download. Porque as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento.
Sintomas
No Microsoft SQL Server 2005 ou no Microsoft SQL Server 2008, execute uma instrução em tabelas que usam um servidor vinculado como uma fonte de dados e um conjunto de resultado incorreto é retornado.
Resolução

SQL Server 2005 Service Pack 3

Correção para esse problema foi lançada primeiro na atualização cumulativa 6 para SQL Server 2005 Service Pack 3. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
974648Pacote de atualização cumulativa 6 para SQL Server 2005 Service Pack 3
Observação Como as compilações são cumulativas, cada novo lançamento de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2005 anteriores corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
960598Compilações do SQL Server 2005 que foram lançadas após o lançamento do SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 hotfixes são criados para específicos de service packs do SQL Server. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 3 para uma instalação do SQL Server 2005 Service Pack 3. Por padrão, qualquer hotfix é fornecido no service pack do SQL Server está incluído no service pack próximo do SQL Server.

A versão de lançamento do SQL Server 2008

Importante Você deve instalar essa correção se você estiver executando a versão de lançamento do SQL Server 2008.

A correção para este problema primeiro foi lançada em 8 de atualização cumulativa. Para obter mais informações sobre como obter esse pacote de atualização cumulativa para SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
975976Pacote de atualização cumulativo 8 para SQL Server 2008
Observação Como as compilações são cumulativas, cada novo lançamento de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. Recomendamos que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
956909Compilações de SQL Server 2008 que foram lançadas após o lançamento do SQL Server 2008

SQL Server 2008 Service Pack 1

Importante Você deve instalar essa correção se você estiver executando o SQL Server 2008 Service Pack 1.

Primeiro, a correção para esse problema foi lançada em 5 de atualizações cumulativas para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
975977Pacote de atualizações cumulativas 5 para SQL Server 2008 Service Pack 1
Observação Como as compilações são cumulativas, cada novo lançamento de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
970365Compilações de SQL Server 2008 que foram lançadas após o lançamento do SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 hotfixes são criados para específicos de service packs do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix é fornecido no service pack do SQL Server está incluído no service pack próximo do SQL Server.
Situação
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicar a".
Mais Informações

Etapas para reproduzir o problema

The following sample statements can be used to reproduce this problem.
-- create sample database--create database testgouse testgo---- create sample table--if exists (select * from sys.objects where object_id = OBJECT_ID('T1'))drop table T1create table T1 (ID int primary key, CODE_AB char(2) not null,CATEGORY char(1) not null default ('0')) if exists (select * from sys.objects where object_id = OBJECT_ID('M1'))drop table M1create table M1 (CODE_AB char(2) primary key,[NAME] varchar(20) not null ) insert into T1 (ID, CODE_AB) values ( 1, '66') insert into T1 (ID, CODE_AB) values ( 2, '66') insert into T1 (ID, CODE_AB) values ( 3, '77')insert into T1 (ID, CODE_AB) values ( 4, '55') insert into T1 (ID, CODE_AB) values ( 5, '88') insert into T1 (ID, CODE_AB) values ( 6, '88') insert into T1 (ID, CODE_AB) values ( 7, '77') insert into T1 (ID, CODE_AB) values ( 8, '66') insert into T1 (ID, CODE_AB) values ( 9, '77') insert into T1 (ID, CODE_AB) values ( 10, '66') insert into T1 (ID, CODE_AB) values ( 11, '66') insert into T1 (ID, CODE_AB) values ( 12, '88') insert into T1 (ID, CODE_AB) values ( 13, '88') insert into T1 (ID, CODE_AB) values ( 14, '88') insert into T1 (ID, CODE_AB) values ( 15, '22') insert into T1 (ID, CODE_AB) values ( 16, '88') insert into T1 (ID, CODE_AB) values ( 17, '88') insert into T1 (ID, CODE_AB) values ( 18, '88') insert into T1 (ID, CODE_AB) values ( 19, '44') insert into T1 (ID, CODE_AB) values ( 20, '88') insert into T1 (ID, CODE_AB) values ( 21, '66') insert into T1 (ID, CODE_AB) values ( 22, '66') insert into T1 (ID, CODE_AB) values ( 23, '77') insert into T1 (ID, CODE_AB) values ( 24, '77') insert into T1 (ID, CODE_AB) values ( 25, '77') insert into T1 (ID, CODE_AB) values ( 26, '66') insert into T1 (ID, CODE_AB) values ( 27, '66') insert into T1 (ID, CODE_AB) values ( 28, '66') insert into T1 (ID, CODE_AB) values ( 29, '44') insert into T1 (ID, CODE_AB) values ( 30, '77') insert into T1 (ID, CODE_AB) values ( 31, '44') insert into T1 (ID, CODE_AB) values ( 32, '66') insert into T1 (ID, CODE_AB) values ( 33, '88') insert into T1 (ID, CODE_AB) values ( 34, '88') insert into T1 (ID, CODE_AB) values ( 35, '66') insert into T1 (ID, CODE_AB) values ( 36, '66') insert into T1 (ID, CODE_AB) values ( 37, '77') insert into T1 (ID, CODE_AB) values ( 38, '77') insert into T1 (ID, CODE_AB) values ( 39, '77') insert into T1 (ID, CODE_AB) values ( 40, '44') insert into T1 (ID, CODE_AB) values ( 41, '77') insert into T1 (ID, CODE_AB) values ( 42, '77') insert into T1 (ID, CODE_AB) values ( 43, '66') insert into T1 (ID, CODE_AB) values ( 44, '66') insert into T1 (ID, CODE_AB) values ( 45, '77') insert into T1 (ID, CODE_AB) values ( 46, '44') insert into T1 (ID, CODE_AB) values ( 47, '66') insert into T1 (ID, CODE_AB) values ( 48, '66') insert into T1 (ID, CODE_AB) values ( 49, '66') insert into T1 (ID, CODE_AB) values ( 50, '88') insert into T1 (ID, CODE_AB) values ( 51, '66') insert into T1 (ID, CODE_AB) values ( 52, '44') insert into T1 (ID, CODE_AB) values ( 53, '88') insert into T1 (ID, CODE_AB) values ( 54, '88') insert into T1 (ID, CODE_AB) values ( 55, '88') insert into T1 (ID, CODE_AB) values ( 56, '88') insert into T1 (ID, CODE_AB) values ( 57, '22') insert into T1 (ID, CODE_AB) values ( 58, '88') insert into T1 (ID, CODE_AB) values ( 59, '11') insert into T1 (ID, CODE_AB) values ( 60, '11') insert into T1 (ID, CODE_AB) values ( 61, '11') insert into T1 (ID, CODE_AB) values ( 62, '88') insert into T1 (ID, CODE_AB) values ( 63, '77') insert into T1 (ID, CODE_AB) values ( 64, '77') insert into T1 (ID, CODE_AB) values ( 65, '66') insert into T1 (ID, CODE_AB) values ( 66, '77') insert into T1 (ID, CODE_AB) values ( 67, '77') insert into T1 (ID, CODE_AB) values ( 68, '77') insert into T1 (ID, CODE_AB) values ( 69, '33') insert into T1 (ID, CODE_AB) values ( 70, '33') insert into T1 (ID, CODE_AB) values ( 71, '66') insert into T1 (ID, CODE_AB) values ( 72, '66') insert into T1 (ID, CODE_AB) values ( 73, '66') insert into T1 (ID, CODE_AB) values ( 74, '11') insert into T1 (ID, CODE_AB) values ( 75, '77') insert into T1 (ID, CODE_AB) values ( 76, '11') insert into T1 (ID, CODE_AB) values ( 77, '66') insert into T1 (ID, CODE_AB) values ( 78, '66') insert into T1 (ID, CODE_AB) values ( 79, '66') insert into T1 (ID, CODE_AB) values ( 80, '66') insert into T1 (ID, CODE_AB) values ( 81, '66') insert into T1 (ID, CODE_AB) values ( 82, '66') insert into T1 (ID, CODE_AB) values ( 83, '66') insert into T1 (ID, CODE_AB) values ( 84, '66') insert into T1 (ID, CODE_AB) values ( 85, '66') insert into T1 (ID, CODE_AB) values ( 86, '66') insert into T1 (ID, CODE_AB) values ( 87, '77') insert into T1 (ID, CODE_AB) values ( 88, '77') insert into T1 (ID, CODE_AB) values ( 89, '66') insert into T1 (ID, CODE_AB) values ( 90, '11') insert into T1 (ID, CODE_AB) values ( 91, '88') insert into T1 (ID, CODE_AB) values ( 92, '88') insert into T1 (ID, CODE_AB) values ( 93, '44') insert into T1 (ID, CODE_AB) values ( 94, '66') insert into T1 (ID, CODE_AB) values ( 95, '77') insert into T1 (ID, CODE_AB) values ( 96, '44') insert into T1 (ID, CODE_AB) values ( 97, '77') insert into T1 (ID, CODE_AB) values ( 98, '77') insert into T1 (ID, CODE_AB) values ( 99, '88') insert into T1 (ID, CODE_AB) values (100, '88') insert into T1 (ID, CODE_AB) values (101, '88') insert into T1 (ID, CODE_AB) values (102, '77') insert into T1 (ID, CODE_AB) values (103, '66') insert into T1 (ID, CODE_AB) values (104, '77') insert into M1 values ('66', 'F') insert into M1 values ('77', 'G') if exists (select srv.name from sys.servers srv where srv.name = '127.0.0.1')exec sp_dropserver @server = '127.0.0.1', @droplogins = 'droplogins'exec sp_addlinkedserver @server = '127.0.0.1', @srvproduct = 'SQL Server'exec sp_addlinkedsrvlogin @rmtsrvname = '127.0.0.1', @useself = 'True', @locallogin = NULL, @rmtuser = NULL, @rmtpassword = NULLgo---- compare results. ---- 1. select local tables. -> expect a correct result.select *from (select ID,CODE_AB,CODE_A = case when CATEGORY = '0' then substring(T1.CODE_AB, 1, 1) end,CODE_B = case when CATEGORY = '0' then substring(T1.CODE_AB, 2, 1) end,CODE_NAME = case when CATEGORY = '0' then (selectM1.CODE_AB + ' ' + M1.[NAME]from M1 where M1.CODE_AB = T1.CODE_AB) endfrom T1) as TEMPwhere CODE_A = '7' and CODE_B = '7'-- 2. select tables via linked server. -> expect a wrong result.select *from (select ID,CODE_AB,CODE_A = case when CATEGORY = '0' then substring(T1.CODE_AB, 1, 1) end,CODE_B = case when CATEGORY = '0' then substring(T1.CODE_AB, 2, 1) end,CODE_NAME = case when CATEGORY = '0' then (selectM1.CODE_AB + ' ' + M1.[NAME]from [127.0.0.1].test.dbo.M1 as M1 where M1.CODE_AB = T1.CODE_AB) endfrom [127.0.0.1].test.dbo.T1 as T1) as TEMPwhere CODE_A = '7' and CODE_B = '7' --order by CODE_AB -- if we use this the correct result will return.go---- drop linked server, drop sample database.--/*if exists (select srv.name from sys.servers srv where srv.name = '127.0.0.1')exec sp_dropserver @server = '127.0.0.1', @droplogins = 'droplogins'use mastergoif exists (select * from sys.databases where name = 'TEST')drop database test*/
Referências
Para obter informações adicionais sobre o modelo de serviços incrementais para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
935897Um modelo de serviços incrementais está disponível da equipe do SQL Server para fornecer hotfixes para problemas relatados
Para obter informações adicionais sobre como obter o SQL Server 2005 Service Pack 3, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
913089Como obter o service pack mais recente do SQL Server 2005
Para obter mais informações sobre os novos recursos no SQL Server 2005 Service Pack 3 (SP3) e sobre os aperfeiçoamentos no SQL Server 2005 SP3, visite o seguinte site: Para obter informações adicionais sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
822499Novo esquema para nomeação dos pacotes de atualização de software Microsoft SQL Server
Para obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento:
824684Descrição da terminologia padrão usada para descrever as atualizações de software
servidor vinculado do resultado errado

Warning: This article has been translated automatically

Propriedades

ID do Artigo: 975417 - Última Revisão: 10/19/2009 10:38:28 - Revisão: 1.1

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup

  • kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975417 KbMtpt
Comentários
ument.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">