外键约束,导致不能修改表怎么办

Quester-King 2012-07-16 02:53:53
我有两个表,
stuinfo(学生信息表):
学号(主键),姓名,性别,班级,专业

grade(学生成绩表):
学号(从信息表引用学号),姓名,科目,成绩
学号和科目组成复合主键

现在我要用改一个学生的学号。
语句如下:
update stuinfo
set stuid='045'
where stuid = '013'


它报错说:
消息 547,级别 16,状态 0,第 1 行
UPDATE 语句与 REFERENCE 约束"FK__grade__stuID__108B795B"冲突。该冲突发生于数据库"grade",表"dbo.grade", column 'stuID'。
语句已终止。


怎么改学号呢?
...全文
769 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Quester-King 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
方法一: 删除约束 ,然后执行update语句
方法二: 先添加新学号 修改grade表学号为新学号 stuinfo
中 删除老学号
[/Quote]
谢谢!
皓皓 2012-07-16
  • 打赏
  • 举报
回复
方法一: 删除约束 ,然后执行update语句
方法二: 先添加新学号 修改grade表学号为新学号 stuinfo
中 删除老学号
夜予 2012-07-16
  • 打赏
  • 举报
回复
就是要先删掉约束
quchen520 2012-07-16
  • 打赏
  • 举报
回复
你要先删掉grade表中的stuid = '013'的记录
才能执行你的修改
Quester-King 2012-07-16
  • 打赏
  • 举报
回复
自己顶一个。。。。

34,835

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧