当前位置: 代码迷 >> SQL >> sql执行修改列数据类型时出错,该怎么解决
  详细解决方案

sql执行修改列数据类型时出错,该怎么解决

热度:238   发布时间:2016-05-05 15:27:33.0
sql执行修改列数据类型时出错
create database 学生成绩管理
on
(
 name='学生成绩管理_data',
 filename='f:\DATA\学生成绩管理_datat.mdf',
 size=1,
 maxsize=unlimited,
 filegrowth=10% 
)
log on
(
 name='学生成绩管理_log',
 filename='f:\DATA\学学生成绩管理_data.ldf',
 size=1,
 maxsize=5,
 filegrowth=1
  
)


create table 学生表
(
 学号 char(12) primary key not null,
 姓名 char(8) not null,
 性别 char(2) not null,
 出生年月 datetime,
 所在系 varchar(30)
)


create table 课程表
(
 课程号 char(8) primary key not null,
 课程名 varchar(30) not null,
 学分 smallint not null,
 任课教师 char(8)
)


create table 成绩表
(
 学号 char(12) primary key not null,
 课程号 char(8),
 成绩 numeric(5,1)
)



--删除约束
alter table 成绩表
drop constraint 约束2

alter table 成绩表
drop constraint 约束1

ALTER TABLE 课程表 alter column 课程号 bigint




服务器: 消息 5074,级别 16,状态 8,行 1
对象 'PK__课程表__155B1B70' 依赖于 列 '课程号'。
服务器: 消息 4922,级别 16,状态 1,行 1
ALTER TABLE ALTER COLUMN 课程号 失败,因为有一个或多个对象访问此列。


求解,我是菜鸟,虚心求教。

------解决方案--------------------
成绩表中是不是还设定了外键依赖,它的课程号依赖于主表课程表。
 得把这个依赖也得去掉。
------解决方案--------------------
有外键约束,你得先取消这个外键参考。
  相关解决方案