永发信息网

SQL建立存储过程,插入一条新记录出现错误,如何修改?

答案:2  悬赏:0  手机版
解决时间 2021-07-28 16:51
  • 提问者网友:不要迷恋哥
  • 2021-07-28 13:10

在“学生成绩管理”数据库中建立存储过程ins_grade,要求根据输入的学号、课程号和成绩往成绩表中插入一条新记录,要求学号和课程号是学生表和课程表中已经存在的,才能正常插入。如果不存在这样的学号和课程号,给出相应的错误提示,然后不进行插入操作结束存储过程。

以下是我的语句:
create proc ins_grade
@xh char(12),@kch char(8),@cj numeric
as
begin
if exists (select 成绩表.学号,成绩表.课程号 from 学生表,成绩表,课程表
where 学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号)
insert into 成绩表(学号,课程号,成绩) values(@xh,@kch,@cj)
else
print '不进行插入操作,结束存储过程'
end

当执行时,exec ins_grade 200600010001,00010004,56

发生错误,应该怎样改正?

最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-07-28 13:23

if exists (select 学号 from 学生表 where 学生表.学号=@xh) -- 学生表中存在@xh


and exists (select 课程表.课程号 From 课程表 where 课程表.课程号=@kch) --课程表中存在@kch
insert into 成绩表(学号,课程号,成绩) values(@xh,@kch,@cj) --然后插入



你之前写的逻辑上就是不成立的

全部回答
  • 1楼网友:罪歌
  • 2021-07-28 14:31

字符串要加 单引号吧 另外楼上说的也是呀 你的逻辑上就错了呀

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯