SQL SERVER 2008有关于列的删除问题——存在依赖

#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 学分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值