你目前正处于脱机状态,正在等待 Internet 重新连接

修复:"尝试将非可空值的列的值设置为空值"错误消息在使用 MERGE 语句时,SQL Server 2008年中,SQL Server 2008 R2 中或在 SQL Server 2012

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2671078
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) 约束。
  • 若要执行插入操作,请使用 合并 语句。
在此方案中,您将收到以下错误消息:

消息 681,级别 16,状态 #、 行 #
试图将非可空值的列的值设置为 NULL。
解决方案

累积更新信息

问题是第一次更新修复了以下累计的 SQL Server。

SQL Server 2008 R2 sp2 的累积更新 10

有关累积更新 SQL Server

为 SQL Server 的每个新的累积更新中包含的所有修补程序和所有安全修补程序,已包括在以前的累积更新。SQL Server 检查出最新的累积更新:

适用于 SQL Server 2012 Service Pack 1 的累积更新包 1

累积更新 1 中首次发布此问题的修补程序。有关如何为 SQL Server 2012 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2765331 适用于 SQL Server 2012 Service Pack 1 的累积更新包 1
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修复程序都包含上一个 SQL Server 2012年的修补都程序版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 在 SQL Server 2012 Service Pack 1 月发布之后发布的 SQL Server 2012 版本

SQL Server 2008 R2 Service Pack 1

累积更新 8 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2723743 SQL Server 2008 R2 sp1 的累积更新包 8
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序,并附带上一个 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 对于 SQL Server 2012年的累积更新包 3
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修复程序都包含上一个 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 对于 SQL Server 2008 Service Pack 3 的累积更新包 6
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序和修复了上一个 SQL Server 2008年中包含的所有安全修复都程序的版本。Microsoft 建议您考虑应用包含此修补程序的最新修复程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 SQL Server 2008年生成在 SQL Server 2008 Service Pack 3 月发布之后发布
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2008年的修复程序。必须将一个 SQL Server 2008 Service Pack 3 修补程序应用到安装的 SQL Server 2008 Service Pack 3。默认情况下,任何 SQL Server service pack 中提供的修补程序包含在下一次 SQL Server service pack。

SQL Server 2008 R2

累积更新 14 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 中获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703280 SQL Server 2008 R2 的累积更新包 14
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序和修复了上一个 SQL Server 2008 R2 中包含的所有安全修复都程序的版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 SQL Server 2008 R2 生成 SQL Server 2008 R2 发布后发布

SQL Server 2008 Service Pack 2

此问题的修补程序首次对 SQL Server 2008 Service Pack 2 发布累积更新 9 中。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2673382 对于 SQL Server 2008 Service Pack 2 的累积更新包 9
注意 版本具有累积性的因为每个新修补程序版本包含的所有修补程序和修复了上一个 SQL Server 2008年中包含的所有安全修复都程序的版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2402659 在发布 SQL Server 2008 Service Pack 2 之后发布的 SQL Server 2008 版本
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

警告:本文已自动翻译

属性

文章 ID:2671078 - 上次审阅时间:12/16/2013 17:36:00 - 修订版本: 6.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Business Intelligence, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core

  • kbtshoot kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2671078 KbMtzh
反馈