套用到
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard

徵狀

請試想下列案例:

  • 在 Microsoft SQL Server 2008 R2 中,有兩個或多個 bit資料類型欄的表格。

  • 您可以在資料表中建立包含兩個或多個 bit資料類型欄的叢集索引。

  • 您可以在任何資料行上建立非叢集索引,並指定DATA_COMPRESSION 選項。

在這種情況下,您會收到下列錯誤:

Msg 1944、Level 16、State 1、Line <行號>index "<index Name>" 未建立。 這個索引的金鑰長度必須至少為 <長度> 位元組。 允許的最大金鑰長度為 <長度> 位元組。

原因

之所以會發生此問題,是因為在這個案例中, bit 資料類型欄的空間需求計算錯誤。

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

因應措施

若要解決此問題,請將資料行的資料類型從 [位 ] 變更為 [ Tinyint]。

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。