十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下面将为您介绍在SQL Server中将系统表中的对应默认约束删除的脚本,供您参考,希望对您能够有所启迪。

专注于为中小企业提供成都网站设计、成都网站制作、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南昌县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。
 如果想删除这个设置了默认值的字段(假设此字段名column1),
 执行“ALTER TABLE table1 DROP COLUMN column1”时就会报错:
 The object 'DF__xxxxxxxxxxx' is dependent on column 'column1'. 
 ALTER TABLE DROP COLUMN column1failed because one or more objects access this column.
所以在删除此字段时需要先将系统表中的对应默认约束删除, 可以使用下面的脚本进行删除:
 -- this script drops the default constraint which is generated by the setting of default value.
 DECLARE @tablename VARCHAR(100), @columnname VARCHAR(100), @tab VARCHAR(100)
 SET @tablename='CountryGroupEmailAndWaitAux'
 SET @columnname='actionOfHasNoValidEmail'
declare @defname varchar(100)
 declare @cmd varchar(100)
select @defname = name
 FROM sysobjects so 
 JOIN sysconstraints sc
 ON so.id = sc.constid
 WHERE object_name(so.parent_obj) = @tablename
 AND so.xtype = 'D'
 AND sc.colid =
 (SELECT colid FROM syscolumns
 WHERE id = object_id(@tablename) AND
 name = @columnname)
select @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname
 if @cmd is null print 'No default constraint to drop'
 exec (@cmd)
在删除对应的默认约束后,执行:
 ALTER TABLE table1 DROP COLUMN column1
 即可删除字段。
【编辑推荐】
 删除SQL约束的方法
SQL中用于删除记录的DELETE语句
教您如何彻底删除SQL Server注册表
SQL中游标的语法及应用
SQL语句中布尔表达式不可忽视的部分