knightjsh 2019-06-08 20:10 采纳率: 100%
浏览 844
已采纳

SQL根据条件来赋值,求大佬指导

利用Create Procedure语句创建一个带有参数的存储过程“ProcInsert”,向“student_course”表插入一条记录(‘B0451101’,‘30020108’,86),如果“B0451101”号学生“30020108”号课程记录已经存在,则设置状态值为-101,并输出提示信息“该学生已经在该门课程的成绩已经存在”,否则设置状态值为10,并输出提示信息“该条记录可以添加”。

代码如下:
```create procedure ProcInsert
as
declare @state int=0
select count(*) from student_course where sno='B0451101'
if count(*)>0
begin
set @state=-101
print '该学生已经在该门课程的成绩已经存在'
end

else
begin
set @state=10
print '该条记录可以添加'insert into student_course(sno,tcid,score) 
values('B0451101','30020108',86)
select a.sname,b.cname,c.score
from student a left join course b left join student_course c
on b.cno=c.tcid
on a.sno=c.sno
where @state=10
end
go
  • 写回答

1条回答

  • elaine_zheng 2019-06-10 15:43
    关注

    `create procedure ProcInsert
    as
    declare @state int=0
    declare @cut int=0
    set @cut =(select count(*) from student_course where sno='B0451101' and tcid='30020108')
    if @cut>0
    begin
    set @state=-101
    print '该学生已经在该门课程的成绩已经存在'
    end

    else
    begin
    set @state=10
    print '该条记录可以添加'insert into student_course(sno,tcid,score)
    values('B0451101','30020108',86)
    select a.sname,b.cname,c.score
    from student a left join course b left join student_course c
    on b.cno=c.tcid
    on a.sno=c.sno
    where @state=10
    end
    go

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题