A Microsoft distribui o Microsoft SQL Server 2008 Microsoft SQL Server 2008 R2 Service Pack 1 corre como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento do SQL Server 2008 Service Pack 1 ou SQL Server 2008 R2.

Sintomas

Quando executar uma declaração DE INSERT SELECT UNION ALL no SQL Server 2008 ou no SQL Server 2008 R2, o resultado da declaração pode estar incorreto se uma tabela de origem da cláusula SELECT for utilizada como a tabela-alvo da cláusula INSERT. Por exemplo, executou as seguintes declarações para criar quatro tabelas:

CREATE TABLE [TabA] (M VARCHAR(20), W VARCHAR(20)) CREATE TABLE [TabB] (M VARCHAR(20), W VARCHAR(20), R VARCHAR(20)) CREATE TABLE [TabC] (P VARCHAR(6), M CHAR(20), A NUMERIC(13)) CREATE TABLE [TabD] (P VARCHAR(6), W VARCHAR(20), M VARCHAR(20), D NUMERIC(13), E DATETIME, F DATETIME) Insere alguns valores nas tabelas TabA,TabBe TabD e, em seguida, execute a seguinte declaração DE INSERÇÃO SELECT UNION:

INSERT INTO [TabC] (P, M, A) SELECT T1.P,T1.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabA] T2 ON (T1.M = T2.M AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) UNION ALL SELECT T1.P,T2.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabB] T2 ON (T1.M = T2.R AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) GONeste cenário, recebe resultados incorretos e alguns registos não estão incorretamente inseridos na tabela TabC.

Resolução

Informação de atualização cumulativa

Pacote de serviço SQL Server 2008 3

A correção para este problema foi lançada pela primeira vez na Cumulativa Update 1 para SQL Server 2008 Service Pack 3. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2617146 Pacote de atualização cumulativo 1 para SQL Server 2008 Service Pack 3Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2629969 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 3 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 3 a uma instalação do SQL Server 2008 Service Pack 3. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.

SQL Server 2008 R2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 9. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2567713 Pacote de atualização cumulativa 9 para SQL Server 2008 R2 Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

981356 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2

Sql Server 2008 R2 Service Pack 1

A correção para este problema foi lançada pela primeira vez na Cumulativa Update 2 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2567714 Pacote de atualização cumulativo 2 para SQL Server 2008 R2 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2567616 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 1

Pacote de serviço SQL Server 2008 2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 5 para o SQL Server 2008 Service Pack 2. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2555408 Pacote de atualização cumulativo 5 para SQL Server 2008 Service Pack 2Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2402659 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 2 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.

SQL Server 2008 Service Pack 1 Atualização Cumulativa 14

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 14 para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2527187 Pacote de atualização cumulativo 14 para SQL Server 2008 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

970365 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 1 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 1 a uma instalação do SqL Server 2008 Service Pack 1. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade da tradução?
O que afetou a sua experiência?

Obrigado pelos seus comentários!

×