2012-05-11 5 views
8

Varchar(max)列はSQL Serverのプライマリキーにはできません。Varchar(max)列はSQL Serverのプライマリキーにはできません

プライマリキーにすることができるvarchar型の最大長は何文字ですか。

これは悪い習慣であるかもしれませんが、状況を遭遇しました。

+3

なぜID列がないのですか? –

+0

あなたは8000文字以上になると思われるフィールドを除き、何でもvarchar(max)を使用していませんか?インデックス作成の問題がある場合、パフォーマンスの問題が発生します。 – HLGEM

答えて

16

900バイトがプライマリキーの最大長ですが、これは私の意見では悪い考えです。代わりにサロゲートキーを使用してください。

4

この質問はすでに回答済みですin this thread;簡単な答えは、インデックスフィールドが900バイトを超えることができないということです。つまり、効率や保守性などの無数の理由から、長いVARCHARフィールドをインデックスとして使用することは、一般的には悪い考えです。

3

主キーは、他のすべてのインデックスで行を識別するために使用されます。潜在的に複数メガバイトの値をキーとすることはほとんど意味がないため、一般的にどのキーの合計バイト数にも制限があります。

関連する問題