【问题标题】:Attempting to set a non-NULL-able column's value to NULL in sql 2016尝试在 sql 2016 中将不可 NULL 列的值设置为 NULL
【发布时间】:2016-12-07 13:53:36
【问题描述】:

在 SQL Server 中使用 MERGE 语句时,正在尝试将非 NULL 列的值设置为 NULL”错误消息。这是 SQL 2008 和 SQL 2012 中的一个已知问题。(https://support.microsoft.com/en-in/kb/2671078)

谁能知道它是否已在 SQL 2016 中修复?

谢谢

【问题讨论】:

  • 请在此澄清您的问题。当您确定自己没有尝试这样做时,您是否收到“您不能将不可为空的列设置为空”错误?

标签: sql-server-2016


【解决方案1】:

我今天遇到了这个问题,问题归结为我试图显示的列上的索引损坏。我在两个表共有的公司 ID 列上有一个联接。我试图从连接到发票表的公司主表中显示公司名称。 我收到了这个错误: 消息 681,第 16 层,状态 3,第 12 行 试图将不可 NULL 列的值设置为 NULL。 我在两个表中都查询了一个 NULL 公司 ID,但都没有。我在公司表中查询了 NULL 公司名称,但没有。如果我从查询中删除了列公司名称,它就起作用了。在公司主表上有一个公司名称列的索引。 我使用估计的执行计划来查看损坏的查询正在使用公司主表上的公司名称索引。由于该列不在工作查询中,我开始查看索引。 我尝试全部重建它们,但公司名称索引未能重建并出现错误: 试图将不可 NULL 列的值设置为 NULL。 (Microsoft SQL Server,错误:681)

为了解决这个问题,我删除并重新创建了索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2012-03-08
    相关资源
    最近更新 更多