KB2671078 - CORREÇÃO: Mensagem de erro "Tentando definir o valor de uma coluna não NULL-able como NULL" quando você usa uma instrução MERGE no SQL Server 2008, no SQL Server 2008 R2 ou no SQL Server 2012

Aplica-se a
SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 Web SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

A Microsoft distribui correções do Microsoft SQL Server 2008, SQL Server 2008 R2 ou 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 R2 ou SQL Server 2012 corrigir lançamento

Sintomas

Considere o seguinte cenário:

  • Você tenta executar uma operação de inserção em uma tabela de destino em um banco de dados do Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2012.
  • A tabela de destino tem mais do que um constrangimento de chave externa (FK).
  • Para executar a operação de inserção, utilize uma instrução MERGE.

Nesse cenário, a seguinte mensagem de erro é exibida:

Observação

Msg 681, Nível 16, Estado #, Linha #

Observação

A tentar definir o valor de uma coluna não NULL-able para NULL.

Resolução

Informações sobre a atualização cumulativa

O problema foi corrigido na atualização cumulativa seguinte do SQL Server.

Atualização Cumulativa 10 para SQL Server 2008 R2 SP2 /en-us/help/2908087

Sobre atualizações cumulativas para o SQL Server

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

      

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

2765331 Pacote de atualizações cumulativas 1 para SQL Server 2012 Service Pack 1Nota 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 que foram incluídas com o anterior SQL Server 2012 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

2772858 As compilações do SQL Server 2012 lançadas após o SQL Server 2012 Service Pack 1

SQL Server 2008 R2 Service Pack 1A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 8. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 Service Pack 1, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2723743 Pacote de atualizações cumulativas 8 para SQL Server 2008 R2 SP1Nota: 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 que foram incluídas com o SQL Server anterior 2008 R2 Service Pack 1 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

2567616 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 SP1

SQL Server 2012 A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3 do SQL Server 2012. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

2723749 Pacote de atualizações cumulativas 3 para SQL Server 2012Nota 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 que foram incluídas com o anterior SQL Server 2012 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

2692828 As compilações do SQL Server 2012 lançadas após o lançamento do SQL Server 2012 Tem de aplicar uma correção do SQL Server 2012 a uma instalação do SQL Server 2012.

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

2715953 Pacote de atualizações cumulativas 6 para SQL Server 2008 Service Pack 3Nota 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 que foram incluídas com o anterior SQL Server 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

2629969 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 3 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 3 a uma instalação do SQL Server 2008 Service Pack 3. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.

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

2703280 Pacote de atualização cumulativa 14 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 que foram incluídas com o anterior SQL Server 2008 R2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

981356 As compilações do SQL Server 2008 R2 lançadas após o SQL Server 2008 R2

SQL Server 2008 Service Pack 2A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 9 do SQL Server 2008 Service Pack 2. Para mais informações sobre como obter este pacote de actualização cumulativa, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2673382 Pacote de atualizações cumulativas 9 para SQL Server 2008 Service Pack 2Nota 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 que foram incluídas com o anterior SQL Server 2008 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da 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

Status

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