A Microsoft distribui o Microsoft SQL Server 2008 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 ou do SQL Server 2008 R2.
Sintomas
Considere o seguinte cenário:
-
Você cria uma publicação transacional no Microsoft SQL Server 2008 ou no Microsoft SQL Server 2008 R2.
-
Você tem um modo de exibição indexado. Você define a propriedade ANSI_NULLS do modo de exibição de índice como verdadeiro.
-
Você adiciona o modo de exibição indexado à publicação como um artigo. Você define o tipo de artigo para "modo de exibição de índice logbased". Observação Você pode usar o código a seguir para especificar o tipo de modo de exibição indexado. Faça isso quando você executar o procedimento armazenado sp_addarticle para adicionar o artigo do modo de exibição indexado à publicação.
@type = N'indexed view logbased'
-
Crie uma assinatura para a publicação transacional.
-
O modo de exibição indexado é replicado para o banco de dados de assinatura.
Nesse cenário, a propriedade ANSI_NULLS do modo de exibição indexado é alterada para false no banco de dados de assinatura.Observações
-
Esse problema geralmente ocorre quando a propriedade ANSI_NULLS das tabelas envolvidas na estrutura de expressões SQL do modo de exibição de índice é definida como false.
-
Esse problema também existe no Microsoft SQL Server 2005.
Causa
Esse problema ocorre porque tabelas, modos de exibição, funções e procedimentos armazenados no SQL Server 2008 compartilham o mesmo bit de armazenamento para a propriedade ANSI_NULL . Portanto, se a propriedade ANSI_NULLS de uma das tabelas envolvidas na estrutura de expressões SQL do modo de exibição indexado estiver definida como false, a propriedade ANSI_NULLS padrão para o modo de exibição indexado será falsa.
Resolução
Informações sobre a atualização cumulativa
Service Pack 1 do SQL Server 2008
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 10 para SQL Server 2008 Service Pack 1. 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:
2279604 Pacote de atualizações cumulativas 10 para SQL Server 2008 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 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:
970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1 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 1 a uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.
Service Pack 2 do SQL Server 2008
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 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:
2289254 Atualização cumulativa 1 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. 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:
2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2
SQL Server 2008 R2
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 4. 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:
2345451 Pacote de atualização cumulativa 4 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 R2
Solução alternativa
Para contornar esse problema, atualize o cache de metadados após a criação do modo de exibição indexado e antes de sp_addarticle ser executado para adicionar o artigo do modo de exibição indexado.Observações Para atualizar o cache de metadados, use um dos seguintes métodos:
-
Pare o serviço do SQL Server e, em seguida, inicie o serviço.
-
Defina o banco de dados de assinatura como offline e, em seguida, defina o banco de dados como online.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplicável a".
Referências
Para obter mais informações sobre o procedimento armazenado sp_addarticle, acesse o seguinte site da Microsoft:
Introdução ao procedimento armazenado do sp_addarticle (Transact-SQL)Para obter mais informações sobre como publicar dados e objetos de banco de dados, acesse o seguinte website da Microsoft:
Publicando dados e objetos de banco de dadosPara obter mais informações sobre o modelo de manutenção incremental do SQL Server, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
935897 Um modelo de serviço incremental está disponível na equipe do SQL Server para fornecer hotfixes para problemas relatadosPara obter mais informações sobre o esquema de nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
822499Novo esquema de nomeação para pacotes de atualização de software do Microsoft SQL ServerPara obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft