2

次の列を持つテーブルがあります。

[ClauseID] [int] NOT NULL,
[PolicyCategoryID] [int] NOT NULL,
[ExpiryDate] [smalldatetime] NULL,

これClauseIDで、PolicyCategoryID一緒に主キーが作成されます。ExpiryDateしかし、私は主キーの一部にもなりたいです。列をnullにしないために、次のことを試しましたが、エラーが発生しました:

ALTER TABLE tblClauses_PolicyCategory
ALTER COLUMN [ExpiryDate] SMALLDATETIME NOT NULL DEFAULT '2079-06-06'

Incorrect syntax near the keyword 'DEFAULT'.

理由はありますか?このようにデフォルトの日付を設定することはできませんか?

編集:悪いことに!デフォルトのキーはすでに設定されています。それがエラーを出した理由に違いありません。

4

2 に答える 2

0

これが役立つと思います:

CREATE TABLE tblClauses_PolicyCategory(
[ClauseID] [int] NOT NULL,
[PolicyCategoryID] [int] NOT NULL,
[ExpiryDate] [smalldatetime] NULL)


ALTER TABLE tblClauses_PolicyCategory
ALTER COLUMN [ExpiryDate] SMALLDATETIME NOT NULL 

ALTER TABLE tblClauses_PolicyCategory
ADD CONSTRAINT cons_default DEFAULT '2079-06-06' FOR ExpiryDate

ただし、NOT NULL に変更ExpireDateする前に、この列の既存の行に値を入力してから、列を NOT NULL に変更する必要があります。

于 2013-08-23T09:42:08.503 に答える