为什么alter table 一支报错?

blusk 2005-12-21 09:12:38
alter table 收支表
replace 收入 default 3000


服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: '收入' 附近有语法错误。
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2005-12-21
  • 打赏
  • 举报
回复
如果删除默认值,并且知道默认值约束的名称,可以直接执行

alter table 收支表 drop constraint 约束名

但是,一般情况下,都是系统定义的约束名,用户不知道约束的名称,用下面的语句。

--如果原来有默认值,现在需要更改默认值,执行如下语句:

declare @csname varchar(100)
set @csname=''
select @csname=[name] --约束名称
from sysobjects t
where id=(select cdefault from syscolumns where id=object_id(N'收支表') and name='收入')
exec('alter table 收支表 drop constraint '+@csname)

alter table 收支表 add default(3000) for 收入

OracleRoob 2005-12-21
  • 打赏
  • 举报
回复

--如果原来有默认值,现在需要更改默认值,执行如下语句:

declare @csname varchar(100)
set @csname=''
select @csname=[name] --约束名称
from sysobjects t
where id=(select cdefault from syscolumns where id=object_id(N'收支表') and name='收入')
exec('alter table 收支表 drop constraint '+@csname)

alter table 收支表 add default(3000) for 收入
blusk 2005-12-21
  • 打赏
  • 举报
回复
如果想删除默认值怎么做?
OracleRoob 2005-12-21
  • 打赏
  • 举报
回复
楼主是想修改收入列的默认值吧,原来是否有默认值
如果原来没有,执行如下语句:

alter table 收支表 add default(3000) for 收入

alter table 收支表 add constraint 约束名字 default(3000) for 收入


34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧