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

在“学生成绩管理”数据库中建立存储过程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发生错误,应该怎样改正?

if exists (select 学号 from 学生表 where 学生表.学号=@xh) -- 学生表中存在@xhand exists (select 课程表.课程号 From 课程表 where 课程表.课程号=@kch) --课程表中存在@kch
insert into 成绩表(学号,课程号,成绩) values(@xh,@kch,@cj) --然后插入 你之前写的逻辑上就是不成立的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-22
字符串要加 单引号吧 另外楼上说的也是呀 你的逻辑上就错了呀