尝试将非NULL值列的值设置为NULL"在SQL Server中使用MERGE语句时收到错误消息。这是SQL 2008中SQL 2008中的已知问题。(https://support.microsoft.com/en-in/kb/2671078)
有人知道它是否在SQL 2016中修复了吗?
谢谢
答案 0 :(得分:-2)
我今天遇到了这个问题,问题归结为我试图显示的列上的索引损坏。我加入了两个表共有的公司ID列。我试图从加入发票表的公司主表中显示公司名称。 我收到了这个错误: Msg 681,Level 16,State 3,Line 12 尝试将不可NULL的列的值设置为NULL。 我查询了两个表的NULL公司ID,但没有。我在公司表中查询NULL公司名称,但没有。如果我从查询中删除了列公司名称,它就可以了。在公司主表上有一个公司名称列的索引。 我使用估计的执行计划来查看损坏的查询是否在公司主表上使用公司名称索引。由于该列不在工作查询中,因此我开始查看索引。 我试图重建它们,公司名称索引无法重建错误: 尝试将不可NULL的列的值设置为NULL。 (Microsoft SQL Server,错误:681)
要解决,我删除并重新创建了索引。