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

文章翻译 文章翻译
文章编号: 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

收起这个图片展开这个图片
assets folding start collapsed
为 SQL Server 的每个新的累积更新中包含的所有修补程序和所有安全修补程序,已包括在以前的累积更新。SQL Server 检查出最新的累积更新:
收起这个图片展开这个图片
assets folding end collapsed

适用于 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 产品中的问题。

属性

文章编号: 2671078 - 最后修改: 2013年12月16日 - 修订: 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
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 2671078
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com