A Microsoft distribui o Microsoft SQL Server 2008 Service Pack 1 (SP1) e o Microsoft SQL Server 2008 R2 corre correções como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 SP1 e do SOL Server 2008 R2.
Sintomas
Considere o seguinte cenário:
-
Você habilita o controle de alterações em uma tabela no SQL Server 2008 ou no SQL Server 2008 R2.
-
Você executa uma consulta que usa a função CHANGETABLE em conjunto com o argumento last_sync_version para retornar informações de rastreamento para as alterações que ocorreram na tabela.
-
Um valor bigint é passado como o argumento last_sync_version .
Por exemplo, você executa a seguinte consulta após habilitar o controle de alterações em uma tabela:
SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct
Nesse cenário, a execução da consulta falha e você recebe as seguintes informações:
MSG 1080, nível 15, estado 1, linha 1a valor inteiro o valor bigint está fora do intervalo.
Observações
-
O tipo do argumento last_sync_version é definido como bigint. Portanto, espera-se que a consulta seja executada com êxito.
-
o valor bigint é um espaço reservado que representa o valor bigint que é passado como o argumento last_sync_version .
Resolução
Informações sobre a atualização cumulativa
SQL Server 2008 R2 Service Pack 1
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2544793 Pacote de atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 1Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 que foram lançadas após o lançamento do SQL Server 2008 R2 Service Pack 1
Service Pack 2 do SQL Server 2008
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 4 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2527180 Pacote de atualização cumulativa 4 para SQL Server 2008 Service Pack 2Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. A Microsoft recomenda que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2 Hotfixes do Microsoft SQL Server 2008 são criados para Service Packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.
SQL Server 2008 R2
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 R2, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2507770 Pacote de atualizações cumulativas 7 para SQL Server 2008 R2 Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
981356 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2A correção para esse 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 do SQL Server 2008 SP1, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2497673 Pacote de atualizações cumulativas 13 para SQL Server 2008 Service Pack 1 Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 SP1. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Solução alternativa
Para contornar esse problema, crie uma variável do tipo biginte, em seguida, passe a variável como o argumento Last_sync_version da função CHANGETABLE . Por exemplo, você pode executar a seguinte consulta com êxito:
DECLARE @v3 bigint = 2222222222SELECT * FROM CHANGETABLE(changes dbo.t1, @v3 ) as ct
Informações adicionais
Para obter mais informações sobre a função CHANGETABLE para TRANSACT-SQL, acesse o seguinte site da Microsoft Development Network (MSDN):
Informações gerais sobre a função CHANGEtable para Transact-SQL