可以参考create default 和drop default

解决方案 »

  1.   

    /*--修改/删除有默认值的字段 示例--*/--测试表
    Create Table t1(
    ID  int  Default(0),
    Name Varchar(16)  Default(16),
    Memo Varchar(255) Default('')
    )
    go--要求,删除name字段,将memo字段改为: Memo Varchar(32) Default(32)--处理方法----a.先删除要处理字段的默认值约束
    declare @s varchar(8000)
    set @s=''
    select @s=@s+'
    alter table ['+b.name+'] drop constraint ['+d.name+']'
    from syscolumns a
    join sysobjects b on a.id=b.id
    join syscomments c on a.cdefault=c.id
    join sysobjects d on c.id=d.id
    where b.name='t1' 
    and (a.name='name' or a.name='memo')
    exec(@s)----b.再删除字段 name
    alter table t1 drop column [name]----c.修改字段 memo
    alter table t1 alter column [memo] varchar(32)----d.为字段 memo 添加默认值约束
    set @s='alter table t1 add constraint
    [df__t1__memo__'+cast(newid() as varchar(36))
    +'] default (32) for memo'
    exec(@s)
    go--插入数据测试
    insert t1 values(default,default)
    select * from t1
    go--删除测试
    drop table t1/*--测试结果
    ID          Memo                             
    ----------- -------------------------------- 
    0           32(所影响的行数为 1 行)
    --*/
      

  2.   

    --也就是要,要修改字段的默认值,必须先删除旧的默认值约束,再按新的默认值添加约束.--删除旧的默认值约束名
    alter table 你的表 drop constraint 默认值约束名--然后再设置新的默认值
    alter table 你的表 drop constraint 默认值约束名  default ('默认值') for 字段名
      

  3.   


    ALTER TABLE dbo.alldayhz
    DROP CONSTRAINT DF_alldayhz_riqi
    ALTER TABLE dbo.alldayhz ADD CONSTRAINT
    DF_alldayhz_riqi DEFAULT 2001-01-04 FOR riqi
    我晕,我用数据跟踪跟出来是这样的语句,可是已经有高人做了。