sql – 更改列的默认值
发布时间:2020-05-23 11:23:46 所属栏目:MsSql 来源:互联网
导读:我知道您可以更改现有列的默认值,如 this: ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT NSANDNES FOR CityBorn; 但是根据this我的查询应该工作: ALTER TABLE MyTable ALTER COLUMN CreateDate DATETIME NOT NULL CONSTRAI
|
我知道您可以更改现有列的默认值,如 this: ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn; 但是根据this我的查询应该工作: ALTER TABLE MyTable ALTER COLUMN CreateDate DATETIME NOT NULL
CONSTRAINT DF_Constraint DEFAULT GetDate()
所以在这里我试图使我的列不为空,并设置默认值.但是在CONSTRAINT附近收到Incoorect语法错误.我失踪了吗 解决方法我认为这里的问题是Create Table和Alter Table命令之间的混淆.如果我们查看Create table,那么我们可以在同一时间添加默认值和默认约束: <column_definition> ::=
column_name <data_type>
[ FILESTREAM ]
[ COLLATE collation_name ]
[ SPARSE ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT constant_expression ]
| [ IDENTITY [ ( seed,increment ) ] [ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
[ <column_constraint> [ ...n ] ]
[ <column_index> ]
ex:
CREATE TABLE dbo.Employee
(
CreateDate datetime NOT NULL
CONSTRAINT DF_Constraint DEFAULT (getdate())
)
ON PRIMARY;
您可以在这里查看完整的定义: 但是如果我们再看ALTER TABLE ALTER COLUMN,那么您不能添加 | ADD
{
<column_definition>
| <computed_column_definition>
| <table_constraint>
| <column_set_definition>
} [,...n ]
请在这里查看:http://msdn.microsoft.com/en-in/library/ms190273.aspx 所以你必须编写两个不同的语句,用于改变列: ALTER TABLE MyTable ALTER COLUMN CreateDate DATETIME NOT NULL; 另一个用于更改表并添加默认约束 ALTER TABLE MyTable ADD CONSTRAINT DF_Constraint DEFAULT GetDate()FOR CreateDate; 希望这可以帮助!!! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
