这在SQL Server 2008中不起作用:

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

错误是:

关键字“SET”附近的语法错误。

我做错了什么?


当前回答

正确的做法如下:

执行如下命令: Sp_help[表名] 复制约束的名称。 删除默认约束: ALTER TABLE[表名]DROP[约束名] 运行如下命令: 修改表[表名]为[列名]添加默认值[默认值]

其他回答

ALTER TABLE tblUser
 ADD CONSTRAINT DF_User_CreatedON DEFAULT GETDATE() FOR CreatedOn

试试下面的命令;

ALTER TABLE Person11
ADD CONSTRAINT col_1_def
DEFAULT 'This is not NULL' FOR Address

不能使用alter列,而是使用add列

ALTER TABLE Employee 
ADD DEFAULT('SANDNES') FOR CityBorn

正确的做法如下:

执行如下命令: Sp_help[表名] 复制约束的名称。 删除默认约束: ALTER TABLE[表名]DROP[约束名] 运行如下命令: 修改表[表名]为[列名]添加默认值[默认值]

您可以使用以下语法,有关详细信息,请参阅此问题和答案:将具有默认值的列添加到SQL Server中的现有表中

语法:

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES

例子:

ALTER TABLE SomeTable
ADD SomeCol Bit NULL --Or NOT NULL.
CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is 
autogenerated.
DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.

另一种方法:

右键单击表并单击“设计”,然后单击要设置默认值的列。

然后在页面底部添加一个默认值或绑定:例如字符串为'1'或int为1。