KB4575689 - 修正:當你在SQL Server遠端伺服器上執行連結伺服器查詢並結合聚合或加入時,可能會發生錯誤結果

套用到
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows

症狀

假設你執行一個包含聚合和加入 (的查詢,例如:在一個有篩選索引的表格上執行) 計數,該資料表SQL Server作為遠端伺服器,且使用者沒有 VIEW DEFINITION 權限。 在這種情況下,連結的伺服器會將篩選過的索引視為完整唯一索引,查詢結果則是錯誤的。

其他資訊

當你執行遠端查詢時,連結伺服器程序會使用索引元資料來優化查詢。 當你沒有查詢資料庫的 VIEW DEFINITION 權限時,元資料不會顯示該索引是過濾索引,查詢優化器會將該索引視為完整唯一索引。 此修正會在查詢優化器尚未取得 VIEW DEFINITION 權限時,修正已篩選索引的索引元資料。

狀態

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

解決方式

此問題已在以下 SQL Server 的累積更新中得到修正:

註: 這個修正應該套用在遠端連結伺服器上。

關於 SQL Server 的累積更新:

每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:

因應措施

為了解決這個問題,請嘗試以下任一種方法:

  • 移除篩選過的索引。
  • 授權使用者存取權限。 例如:GRANT VIEW 定義至 test_user;

參考資料

了解 Microsoft 用來說明軟體更新的術語