【Sql Server修改列类型错误信息:对象名依赖于列】

Sql Server修改列类型错误信息:对象名依赖于列

报错信息

修改表中列类型,发生报错如下:

bash 复制代码
[SQL Server]对象'DF__Forecast___isCal__4E746892' 依赖于 列'isCalcFinished'。 (5074) [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN isCalc

解决方法

Sql Server修改列类型错误信息:对象名依赖于列

原因:存在默认约束

解决:

--1.查找出表中该字段的(默认)约束名称

declare @name varchar(50)

select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault

where a.id = object_id('表名')

and a.name ='字段名'

--2. 删除存在的(默认)约束

exec('alter table 表名 drop constraint ' + @name)

--修改字段类型

ALTER TABLE 表名 ALTER COLUMN 字段名 INT

--添加默认约束

alter table 表名

add constraint DF_表名_字段名 default(0) for 字段名

测试sql语句

修改表中列类型为int

sql 复制代码
--1.查找出表中该字段的(默认)约束名称
declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault 
where a.id = object_id('Forecast_ProgramInfo_Plus_Rollcc') 
and a.name ='isCalcFinished'


--2. 删除存在的(默认)约束
exec('alter table Forecast_ProgramInfo_Plus_Rollcc  drop constraint ' + @name)


--修改字段类型
ALTER TABLE Forecast_ProgramInfo_Plus_Rollcc ALTER COLUMN isCalcFinished INT  


--添加默认约束
alter table Forecast_ProgramInfo_Plus_Rollcc
add constraint DF_Forecast_ProgramInfo_Plus_Rollcc_isCalcFinished default(0) for isCalcFinished
相关推荐
z人间防沉迷k1 分钟前
字符串索引、幻读的解决方法
数据库·sql·mysql
岁忧20 分钟前
LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分
数据库·sql·leetcode
北漂老男孩3 小时前
Flink SQL 编程详解:从入门到实战难题与解决方案
大数据·sql·flink
雷神乐乐4 小时前
Oracle中EXISTS & NOT EXISTS的使用
数据库·sql·oracle
Hubert_xx6 小时前
SQL正则表达式总结
前端·sql·正则表达式
SuperherRo9 小时前
Web攻防-SQL注入&增删改查&HTTP头&UA&XFF&Referer&Cookie&无回显报错
sql·referer·增删改查·cookie·xff·ua
永远在减肥永远110的的小潘17 小时前
通过HIVE SQL获取每个用户的最大连续登录时常
hive·hadoop·sql
abcnull17 小时前
mybatis的mapper对应的xml写法
xml·sql·spring·mybatis·mapper
小陈又菜19 小时前
Real SQL Programming
数据库·sql
白皎1 天前
经典SQL查询问题的练习第二天
数据库·sql