#sql初学者的笔记#
今天在做一道题的时候遇到了一个问题:
当我们创建table时:
go
use stu0082
create table 学生与课程表
(
学号 char(7) not null,
课程号 char(3) not null,
成绩 tinyint default 0
constraint c_3 check(成绩 between 0 and 100),
学分 tinyint null default 0,
foreign key (学号) references 学生情况表(学号),
foreign key (课程号) references 课程表(课程号),
)
go
然後若使用刪除語句:
go
alter table 学生与课程表
drop column 学分
发现报错:
消息 5074,级别 16,状态 1,第 1 行
对象’DF__学生与课程表__学分__0EA330E9’ 依赖于 列’学分’。
原因:
创建表时设置default默认值。
那么,如何实现这个代码呢?
首先查找自己被默認的約束名:
go
sp_help '学生与课程表'
go
將查詢到的約束刪除:
go
alter table 学生与课程表
drop constraint DF__学生与课程表__学分__0EA330E9
最後,重新使用sql語句:
go
alter table 学生与课程表
drop column 学分