由于建表时字段使用了默认值生成了默认约束,如果后期想要修改或删除这个字段的话会删除失败并提示因默认约束存在无法删除,可引用下面所示代码先删除默认约束再对字段操作。
DECLARE @tablename VARCHAR(100), @columnname VARCHAR(100), @tab VARCHAR(100)
SET @tablename='表名'
SET @columnname='字段名'
DECLARE @defname VARCHAR(100)
DECLARE @cmd VARCHAR(100)
SELECT @defname = name FROM sysobjects so
inner 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)
SET @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname
IF @cmd is null PRINT 'No default constraint to drop'
EXEC (@cmd)
文章所示代码来源网络,忘记保存链接了这里就不引用了,如果原作者看到可联系321304825@qq.com删除。