0

主キーの列サイズが50に設定されているテーブルがあります。いくつかの新しい要件のため、サイズを255に増やす必要があります。オンラインで検索した後、列がの一部である場合、列を変更できないことがわかりました。主キーの制約。そこで、制約を削除し、列を変更して、制約を追加し直すというアプローチを取りました。しかし、まだ小さな問題が発生しています。元の列はNon Null型であり、デフォルト値が設定されていますが、次のSQLを試してみると、「デフォルトに近い構文が正しくありません」というエラーが表示されます。

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

4

2 に答える 2

1

`ALTER TABLE... ALTER COLUMN' を使用して、列と制約 (ここではデフォルト) の両方を同時に変更することはできません。最初に列を変更してから、デフォルトの制約を変更する必要があります。(最初にドロップしてから、デフォルトを再作成する必要がある場合があります。)

于 2011-07-11T16:53:09.943 に答える