CORRECÇÃO: Mensagem de erro quando estimar a compressão numa tabela do SQL Server 2008: "Subconsulta devolveu o valor mais do que 1"

Traduções de Artigos Traduções de Artigos
Artigo: 956031 - Ver produtos para os quais este artigo se aplica.
N.º de bugs: 50003626 (correcção SQL)
A Microsoft distribui correcções Microsoft SQL Server 2008 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utiliza o procedimento sp_estimate_data_compression_savings armazenados numa tabela que tem uma chave primária agrupada e um ou mais índices agrupados no Microsoft SQL Server 2008, poderá receber a seguinte mensagem de erro:
Msg 512, 16 de nível 1 de estado, sp_estimate_data_compression_savings procedimento, 251 de linha
Subconsulta devolveu o valor mais do que 1. Não é permitida quando segue a subconsulta =,! =, <, < =, >, > = ou quando é utilizada a subconsulta como uma expressão.
Embora receba esta mensagem de erro, o resultado é devolvido. No entanto, as estimativas de compressão para alguns índices agrupados estão incorrectas.

Este problema ocorre se existe um índice agrupado ou não.

Resolução

Informações sobre Service Packs

Para resolver este problema, obtenha o service pack mais recente do SQL Server 2008. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
968382Como obter o service pack mais recente do SQL Server 2008

Informações sobre a actualização cumulativa

A correcção deste problema primeiro foi disponibilizada em 2 de actualização cumulativa. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
958186Pacote de actualização cumulativa 2 para o SQL Server 2008
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento. Recomendamos que considere aplicar a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956909O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008

Como contornar

Para contornar este problema, especifique @ index_id parâmetro quando executa o sp_estimate_data_compression_savings procedimento armazenado. Tem de executar o procedimento armazenado uma vez para cada índice para o qual deseja calcular.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a". Este problema foi corrigido pela primeira vez no SQL Server 2008 Service Pack 1.

Mais Informação

O procedimento armazenado sp_estimate_data_compression_savings é utilizado para devolver o tamanho actual das tabelas. O procedimento armazenado sp_estimate_data_compression_savings calcula também o tamanho da tabela para o estado de compressão pedida.

Passos para reproduzir o problema

  1. Inicie o SQL Server Management Studio e, em seguida, ligar a uma instância do SQL Server 2008.
  2. Crie uma nova consulta e, em seguida, execute as seguintes instruções.
    CREATE DATABASE TEST
    GO
    USE Test
    GO
    
    CREATE TABLE REPRO(i int primary key nonclustered, a int)
    GO
    
    CREATE NONCLUSTERED INDEX NONCLUSTERED_REPRO ON REPRO(a)
    GO
    
    EXEC SP_ESTIMATE_DATA_COMPRESSION_SAVINGS @schema_name = 'dbo', @object_name = 'repro', @index_id = NULL, @partition_number = NULL, @data_compression = 'PAGE'
    
Para obter mais informações sobre os ficheiros que são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de actualização cumulativa que contém a correcção que é descrita neste artigo da base de dados de conhecimento da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
958186Pacote de actualização cumulativa 2 para o SQL Server 2008

Referências

Para obter mais informações sobre a lista de compilações disponíveis após o lançamento do SQL Server 2008, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956909O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008
Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
935897Um modelo de assistência incremental está disponível a equipa do SQL Server para proporcionar correcções para problemas comunicados
Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 956031 - Última revisão: 8 de abril de 2009 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
Palavras-chave: 
kbmt sql2008relnotedatabaseengine sql2008relnote kbbug kbqfe kbfix kbexpertiseadvanced kbprb KB956031 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: 956031

Submeter comentários

 

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