KB2671078 – КОРЕКЦИЯ: Съобщение за грешка "Опит за задаване на стойността на колона, която не може да бъде NULL", когато използвате команда MERGE в SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012

Отнася се за
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

Microsoft разпространява корекциите за Microsoft SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекции за SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012

Симптоми

Имайте предвид сценария, описан по-долу:

  • Опитвате се да изпълните операция за вмъкване в целева таблица в база данни на Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012.
  • Таблицата цел има повече от едно ограничение с външен ключ (FK).
  • За да изпълните операцията INSERT, използвате команда MERGE.

В този случай получавате следното съобщение за грешка:

Забележка

Съобщение 681, Ниво 16, Състояние #, ред #

Забележка

Опит за задаване на стойността на колона, която не може да бъде NULL, да е NULL.

Решение

Кумулативна информация за актуализацията

Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.

Сборна актуализация 10 за SQL Server 2008 R2 SP2 /en-us/help/2908087

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

      

Сборен пакет за актуализация 1 за SQL Server 2012 Service Pack 1Корекцията за този проблем е издадена за първи път в сборна актуализация 1. За повече информация как да получите този сборен пакет за актуализация за SQL Server 2012 Service Pack 1, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2765331 Сборен пакет за актуализация 1 за SQL Server 2012 Service Pack 1Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция SQL Server 2012. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2772858 Компилациите на SQL Server 2012, които са издадени след издаването на SQL Server 2012 Service Pack 1

SQL Server 2008 R2 Service Pack 1Корекцията за този проблем е издадена за първи път в сборна актуализация 8. За повече информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2 Service Pack 1, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2723743 Сборен пакет за актуализация 8 за SQL Server 2008 R2 SP1Note Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2008 R2 Service Pack 1. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2567616 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2 SP1

SQL Server 2012 Корекцията за този проблем е издадена за първи път в сборна актуализация 3 за SQL Server 2012. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2723749 Сборен пакет 3 за SQL Server 2012Note Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2012. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2692828 Компилациите на SQL Server 2012, които са издадени след издаването на SQL Server 2012 Трябва да приложите актуална корекция на SQL Server 2012 към инсталация на SQL Server 2012.

SQL Server 2008 Service Pack 3 Корекцията за този проблем е издадена за първи път в сборна актуализация 6 за SQL Server 2008 Service Pack 3. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2715953 Сборен пакет за актуализация 6 за SQL Server 2008 Service Pack 3Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2629969 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 3 Горещите корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 3 към инсталация на SQL Server 2008 Service Pack 3. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.

SQL Server 2008 R2
Корекцията за този проблем е издадена за първи път в кумулативна актуализация 14. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2703280 Сборен пакет за актуализация 14 за SQL Server 2008 R2 Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2

SQL Server 2008 Service Pack 2Корекцията за този проблем е издадена за първи път в сборна актуализация 9 за SQL Server 2008 Service Pack 2. За допълнителна информация как да получите този пакет за кумулативна актуализация, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2673382 Сборен пакет за актуализация 9 за SQL Server 2008 Service Pack 2Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.