KB2671078 - 修正:當您在 SQL Server 2008、SQL Server 2008 R2 或 SQL Server 2012 中使用 MERGE 陳述式時,出現「嘗試將非 NULL 值的資料行值設為 NULL」錯誤訊息

Applies To
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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式

症狀

請考慮以下案例:

  • 您嘗試對 Microsoft SQL Server 2008、Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 資料庫中的目標資料表執行插入作業。
  • 目標資料表有多個外部索引鍵 (FK) 限制式。
  • 若要執行插入作業,請使用 MERGE 陳述式。

在此案例中,您收到下列錯誤訊息:

注意

Msg 681、層級 16、狀態 #、行#

注意

嘗試將非 NULL 資料行的值設為 NULL。

解決方式

累積更新資訊

此問題已先在下列 SQL Server 累積更新中修正。

SQL Server 2008 R2 SP2 的累積更新 10 /zh-tw/help/2908087

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 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 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,來自上一個 SQL Server 2012 修正程式版本。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 SQL Server 2008 R2 SP1 發行之後所發行的 SQL Server 2008 R2 組建

SQL Server 2012 此問題的修正程式最初在 SQL Server 2012 的累積更新 3 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2723749 適用於 SQL Server 2012 的累積更新套件 3 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在先前的 SQL Server 2012 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2692828 SQL Server 2012 發行之後所發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 Hotfix 套用至 SQL Server 2012 的安裝。

SQL Server 2008 Service Pack 3 此問題的修正程式最初在 SQL Server 2008 Service Pack 3 的累積更新 6 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2715953 SQL Server 2008 Service Pack 3 累積更新套件 6 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式都包含在上一個 SQL Server 2008 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2629969 發行 SQL Server 2008 Service Pack 3 之後所發行的 SQL Server 2008 組建Microsoft會為特定 SQL Server Service Pack 建立 SQL Server 2008 Hotfix。 您必須將 SQL Server 2008 Service Pack 3 Hotfix 套用至 SQL Server 2008 Service Pack 3 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 R2
此問題的修正程式最初在累積更新 14 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2703280 SQL Server 2008 R2 的累積更新套件 14 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式隨附於先前的 SQL Server 2008 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 發行 SQL Server 2008 Service Pack 2 之後所發行的 SQL Server 2008 組建

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。