A Microsoft distribui o Microsoft SQL Server 2008, o Microsoft SQL Server 2008 R2 ou o Microsoft SQL Server 2012 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 SQL Server 2008, SQL Server 2008 R2or SQL Server 2012.
Sintomas
Considere o seguinte cenário. Utiliza o Microsoft SQL Server 2008 Reporting Services (SSRS 2008), o Microsoft SQL Server 2008 R2 Reporting Services (SSRS 2008 R2) ou o Microsoft SQL Server 2012 Reporting Services (SSRS 2012) para exportar um relatório para um ficheiro de livro do Microsoft Excel. Em seguida, utiliza o Microsoft Excel 2010 para abrir o ficheiro do Excel. Neste cenário, recebe a seguinte mensagem de erro numa caixa de diálogo:
Erro de ficheiro: os dados podem ter sido perdidos.
Notas
-
Este problema não ocorre se utilizar o Microsoft Office Excel 2003 ou o Microsoft Office Excel 2007 para abrir o ficheiro do livro.
-
Este problema não ocorre se guardar o ficheiro como um ficheiro de livro do Excel 2010.
Causa
Esta edição ocorre porque a SSRS 2008, SSRS 2008 R2 ou SSRS 2012 escreve um valor negativo zero (-0) para o livro do Excel quando exporta o relatório. Quando abre o livro excel, o Excel 2010 verifica o valor e gera a mensagem de erro após a constatação do valor.
Resolução
Informação de atualização cumulativa
Sql Server 2008 R2 Service Pack 2
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 1 para SQL Server 2008 R2 Service Pack 2. 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:
2720425 Pacote de atualização cumulativo 1 para SQL Server 2008 R2 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 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:
2730301 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 2
SQL Server 2012
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 2 para o SQL Server 2012. 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:
2703275 Pacote de atualização cumulativo 2 para SQL Server 2012Nota 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 2012. 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:
2692828 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012 Deve aplicar um hotfix SQL Server 2012 a uma instalação do SQL Server 2012.
Sql Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 6 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:
2679367 Pacote de atualização cumulativo 6 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
SQL Server 2008 R2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 13. 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:
2679366 Pacote de atualização cumulativa 13 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
Pacote de serviço SQL Server 2008 3
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 4 para o SQL Server 2008 Service Pack 3. 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:
2673383 Pacote de atualização cumulativo 4 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 a versão anterior da correção do SQL Server. 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:
2629969 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 3
Solução
Para contornar esta questão, não utilize zeros negativos. Por exemplo, pode utilizar uma expressão que se assemelha ao seguinte quando calcula o valor de uma caixa de texto em SSRS 2008:
=IIf(Sum(Fields!Amount.Value) = -0, 0, Sum(Fields!Amount.Value))
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".