【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
相关推荐
麦聪聊数据31 分钟前
为什么 AI Agent 需要 RESTful API 而不是直接执行 SQL?
人工智能·sql·restful
小张贼嚣张34 分钟前
【面试通关】大数据开发高频SQL面试题(含详细解析)——in/exists、having/where、排序函数等核心考点
大数据·sql·面试
zklgin1 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
android·sql·mysql
小江的记录本1 小时前
【PageHelper】 【Spring Boot + MyBatis + PageHelper】 完整项目示例+PageHelper核心原理深度解析
java·前端·spring boot·后端·sql·spring·mybatis
Schengshuo10 小时前
SQL 中 COUNT 的用法详解
数据库·sql
lierenvip12 小时前
SQL 建表语句详解
java·数据库·sql
人间打气筒(Ada)15 小时前
mysql数据库之DDL、DML
运维·数据库·sql·mysql·dba·dml·dql
Predestination王瀞潞16 小时前
3.3-mapper映射文件+数据库实体关系设计:数据库实体关系设计、SQL 连接查询及MyBatis 多表映射
数据库·sql·mybatis
只能是遇见17 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
Je1lyfish18 小时前
CMU15-445 (2026 Spring) Project#2 - B+ Tree
linux·数据结构·数据库·c++·sql·spring·oracle