去掉字段默认值约束的方法原创
金蝶云社区-抚琴弹唱
抚琴弹唱
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', ''


image.png

分析发现该字段有默认值约束,因为该约束我们没有指定名称,系统随机生成了名称。

那么该如何删除默认值约束呢?


我们可以用以下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