SQL 表中用语句怎样修改默认值

时间:2022-03-26 10:02:43
如表  codex  列 stopflag

表codex  中已经有 stopflag列 

请问 怎样用语句 是stopflag 的默认值 为 0

8 个解决方案

#1


--(1)查看某表的某个字段是否有默认值约束
select a.name as 用户表,b.name as 字段名,d.name as 字段默认值约束 
from sysobjects a
inner join syscolumns b on (a.id=b.id)
inner join syscomments c on ( b.cdefault=c.id )
inner join sysobjects d on (c.id=d.id)
where a.name='tb_fqsj'and b.name='排污口号'


--(2)如果有默认值约束,删除对应的默认值约束
declare @tablename varchar(30)
declare @fieldname varchar(50)
declare @sql varchar(300)

set @tablename='tb_fqsj'
set @fieldname='排污口号'
set @sql=''

select @sql=@sql+' 
alter table ['+a.name+'] drop constraint ['+d.name+']'   
from sysobjects a   
join syscolumns b on a.id=b.id   
join syscomments c on b.cdefault=c.id   
join sysobjects d on c.id=d.id   
where a.name=@tablename and b.name=@fieldname 

exec(@sql)

--(3)添加默认值约束
ALTER TABLE tb_fqsj   
ADD DEFAULT ('01') FOR 排污口号 WITH VALUES

#2


ALTER TABLE codex ADD CONSTRAINT  DEF_stopflag DEFAULT 0 FOR stopflag WITH VALUES

#3


alter table codex add constraint sd  default(0) for  stopflag

#4


参考1楼的 总体意思就是如果你的列里面有约束 就删除对应的默认值约束 再添加
没有约束的话
就直接ALTER TABLE tb_fqsj   
ADD DEFAULT (0) FOR stopflag WITH VALUES

#5


F. 添加具有默认值的可为空的列
下例添加可为空的、具有 DEFAULT 定义的列,并使用 WITH VALUES 为表中的各现有行提供值。如果没有使用 WITH VALUES,那么每一行的新列中都将具有 NULL 值。

ALTER TABLE MyTable 
ADD AddDate smalldatetime NULL
CONSTRAINT AddDateDflt
DEFAULT getdate() WITH VALUES

#6


ok 了 谢谢

#7


去结贴了

#8



ALTER TABLE a   
ADD DEFAULT 0 FOR flag 

#1


--(1)查看某表的某个字段是否有默认值约束
select a.name as 用户表,b.name as 字段名,d.name as 字段默认值约束 
from sysobjects a
inner join syscolumns b on (a.id=b.id)
inner join syscomments c on ( b.cdefault=c.id )
inner join sysobjects d on (c.id=d.id)
where a.name='tb_fqsj'and b.name='排污口号'


--(2)如果有默认值约束,删除对应的默认值约束
declare @tablename varchar(30)
declare @fieldname varchar(50)
declare @sql varchar(300)

set @tablename='tb_fqsj'
set @fieldname='排污口号'
set @sql=''

select @sql=@sql+' 
alter table ['+a.name+'] drop constraint ['+d.name+']'   
from sysobjects a   
join syscolumns b on a.id=b.id   
join syscomments c on b.cdefault=c.id   
join sysobjects d on c.id=d.id   
where a.name=@tablename and b.name=@fieldname 

exec(@sql)

--(3)添加默认值约束
ALTER TABLE tb_fqsj   
ADD DEFAULT ('01') FOR 排污口号 WITH VALUES

#2


ALTER TABLE codex ADD CONSTRAINT  DEF_stopflag DEFAULT 0 FOR stopflag WITH VALUES

#3


alter table codex add constraint sd  default(0) for  stopflag

#4


参考1楼的 总体意思就是如果你的列里面有约束 就删除对应的默认值约束 再添加
没有约束的话
就直接ALTER TABLE tb_fqsj   
ADD DEFAULT (0) FOR stopflag WITH VALUES

#5


F. 添加具有默认值的可为空的列
下例添加可为空的、具有 DEFAULT 定义的列,并使用 WITH VALUES 为表中的各现有行提供值。如果没有使用 WITH VALUES,那么每一行的新列中都将具有 NULL 值。

ALTER TABLE MyTable 
ADD AddDate smalldatetime NULL
CONSTRAINT AddDateDflt
DEFAULT getdate() WITH VALUES

#6


ok 了 谢谢

#7


去结贴了

#8



ALTER TABLE a   
ADD DEFAULT 0 FOR flag