Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

徵狀

假設您有一個在其上建立一或多個索引的 Microsoft SQL Server 資料表。 當您查詢資料表時,SQL Server 可能會對 CHAR 和 BINARY 欄執行不一致的資料空白。 在 CHAR 和 BINARY 資料欄的結尾傳回尾隨空格的不一致行為,視下列情況而定:

  • 在 SQL Server 資料表中建立資料行時,ANSI_PADDING 的設定。

  • 決定在資料行上執行 [表格掃描] 或 [索引搜尋]。

原因

在某些情況下,SQL Server 可能會執行優化,讓它避開許多作業,以加快資料的傳送速度。 出現這個問題是因為 SQL Server 無法辨識在上述案例中無法套用優化。

其他相關資訊

這個 SQL Server 的行為不符合下列文章中所述的行為:使用 Char 和 Varchar 資料

如果在建立 char Null 資料行時 ANSI_PADDING 是開啟的,它的運作方式與非 Null 資料行的行為相同:值會以右邊填補為數據行的大小。 如果在建立 char Null 資料行時,ANSI_PADDING 是關閉的,則它的行為就像是一個 Varchar 欄,其中 ANSI_PADDING 設為 OFF:尾隨空格會被截斷。

解決方案

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

       SQL Server 2017 的累積更新2

       SQL Server 2016 的累積更新9

       SQL Server 2016 SP1 累計更新6

       SQL Server 2014 SP2 累積更新8

       SQL Server 2014 SP1 的累積更新7

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

SQL Server 2016 的最新累計更新

SQL Server 2014 的最新累計更新

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×