去掉字段默认值约束的方法原创
3人赞赏了该文章
2,036次浏览
编辑于2020年11月30日 17:40:57
今天在修改字段长度时SQL Server报以下错误:由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ... 失败
--修改字段长度 EXEC p_AlterColumn 'T_QING_THEME', 'FDESCRIPTION', 'NVARCHAR(500)', 'NULL', '0100', ''
分析发现该字段有默认值约束,因为该约束我们没有指定名称,系统随机生成了名称。
那么该如何删除默认值约束呢?
我们可以用以下KSQL先删掉约束,再修改字段信息,最后再加上约束。
--删掉默认值约束 IF EXISTS (SELECT 1 FROM KSQL_USERCOLUMNS WHERE KSQL_COL_TABNAME = 'T_QING_THEME' AND KSQL_COL_NAME ='FDESCRIPTION' AND ISNULL(KSQL_COL_DEFAULT, '0') <> '0') ALTER TABLE T_QING_THEME DROP DEFAULT FOR FDESCRIPTION; --修改字段长度 EXEC p_AlterColumn 'T_QING_THEME', 'FDESCRIPTION', 'NVARCHAR(500)', 'NULL', '0100', '' --增加默认值约束 ALTER TABLE T_QING_THEME ADD DEFAULT ' ' FOR FDESCRIPTION; UPDATE T_QING_THEME SET FDESCRIPTION = ' ' WHERE FDESCRIPTION IS NULL;
赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0