我有下列的表:为空的日期时间列添加到主键
[ClauseID] [int] NOT NULL,
[PolicyCategoryID] [int] NOT NULL,
[ExpiryDate] [smalldatetime] NULL,
现在ClauseID
和PolicyCategoryID
一起创建的主键。但我想ExpiryDate
也是主键的一部分。为了使列不为空,我尝试了以下内容,但它给出了一个错误:
ALTER TABLE tblClauses_PolicyCategory
ALTER COLUMN [ExpiryDate] SMALLDATETIME NOT NULL DEFAULT '2079-06-06'
Incorrect syntax near the keyword 'DEFAULT'.
任何想法为什么?是否可以设置这样的默认日期?
编辑:坏!默认密钥已被设置。这肯定是它给出错误的原因。
使用'alter column'修改数据类型,'add constraint'添加默认约束 – Andomar
为什么要使主键的'ExpiryDate'部分?用一个任意默认值'2079-06-06'替换一个NULLable列(是YMD还是YDM btw?)是非常值得怀疑的决定。 –
2079-06-06是您可以在MS SQL Server中输入的最大日期。它不是一个任意值 – kapz