SQL Serverの最大キー長は900バイト、複数キーの場合カラムの長さを小さくする

スポンサーリンク
データベース

SQL Serverでこんなエラーが出てしまった。

警告:最大キー長は 900バイトです。インデックス xxx の最大長は1036バイトです。一部の大きな値の組み合わせでは、挿入操作または更新操作が失敗します。

んん?

SQL Server の最大容量仕様

調べてみると、マイクロソフトの公式サイトにSQL Serverの最大容量の仕様が書いてありました。

 

SQL Server の最大容量仕様 - SQL Server

 

SQL Server データベースで定義される各種オブジェクト、または Transact-SQL ステートメントで参照される各種オブジェクトの最大サイズと最大数。

  • 外部キーごとのバイト数 900 バイト
  • 主キーごとのバイト数 900 バイト

 

これは仕様なので変更できません。

データベースの設計を改めましょう。

データベースの設計でカラムのサイズを小さくする

私の場合、こんな風にプライマリキーのサイズが大きくなっていたことが原因。

 

 

再設計をするか。。

 

SQL Server では、すべてのインデックス キー列の最大合計サイズは 900 バイトに制限される。

と覚えておこう。

 

 

コメント

タイトルとURLをコピーしました