プライマリキーのカラムサイズが50のテーブルがあります。いくつかの新しい要件のために、サイズを255に増やす必要があります。主キー制約の一部である場合、列を変更することは可能です。だから、私は制約を取り除き、列を変更し、制約を戻すアプローチを取った。 しかし、私はまだ小さな問題が発生しています、私の元の列の型null以外のものであり、デフォルト値が設定されているが、私は次のSQLをしようとすると、今、私はエラー「DEFAULTの近くに不適切な構文」を取得テーブルのプライマリキーのカラムサイズを255に変更
ALTER TABLE [tblLocation]
DROP CONSTRAINT [PK_tblLocation]
ALTER TABLE [tblLocation]
ALTER COLUMN Location VARCHAR(255) DEFAULT('New Location') NOT NULL
ALTER TABLE [tblLocation]
ADD
CONSTRAINT [PK_tblLocation] PRIMARY KEY CLUSTERED
(
[Location] ASC
)
ありがとうございました。 Javidあなたは同時にコラムと制約(ここでは、デフォルト)の両方を変更するには「列を変更... ALTER TABLEを `使用することはできません
あなたはクラスタリングキーとして 'VARCHAR(255)'を持っていません。 !! [Kimberly Trippのブログ記事](http://www.sqlskills.com/BLOGS/KIMBERLY/post/Ever-increasing-clustering-key-the-Clustered-Index-Debateagain!.aspx)で、良いクラスタリングキーを1つのポイントが**狭い** - INT(4バイト)は大、BIGINT(8バイト)はOK、GUID(16バイト)は許容されるかもしれませんが、それ以外のものは特に**可変幅**カラム - 狂気です。 –
非常に真実で、うまくいけば彼はそれを変更することができます。しかし、あなたはそれを見たことがありますか(おそらく最終的に) "私は構造がうんざりだと知っていますが、私はそれを変更することはできません"と言っています...? –
@Philip Kelley:あまりにも多く - しかし、しばしば、もしその人が実際に構造を変更できないのか、それとも彼がそれをやるのが面倒かどうかは疑問に思えます..... –