这在SQL Server 2008中不起作用:

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

错误是:

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

我做错了什么?


当前回答

ALTER TABLE Employee ADD DEFAULT 'SANDNES' FOR CityBorn

其他回答

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

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

这将在SQL Server工作:

ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn;

正确的做法如下:

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

刚刚发现3个简单的步骤来改变已经存在的列,之前是空的

update   orders
set BasicHours=0 where BasicHours is null

alter table orders 
add default(0) for BasicHours

alter table orders 
alter  column CleanBasicHours decimal(7,2) not null