create procedure Upd_Grade
           @sno char(15),@cno char(6),@grade dec(4,1)
 as
        update sc
        set grade=@grade
        where sno=@sno and cno=@cno
  if @@rowcount=0
  insert sc (grade,sno,cno) values(@grade,@sno,@cno)
 go

解决方案 »

  1.   

    //楼上的方法很好@@rowcount是一个全局变量
    create procedure Upd_Grade
               @sno char(15),@cno char(6),@grade dec(4,1)
     as
            update sc
            set grade=@grade
            where sno=@sno and cno=@cno
      if @@rowcount=0
      insert sc (grade,sno,cno) values(@grade,@sno,@cno)
     go
      

  2.   

    楼上的方法很好
    另有一法:
    create procedure Upd_Grade
               @sno char(15),@cno char(6),@grade dec(4,1)
     as
     if exists (select 1 from sc where sno=@sno and cno=@cno)
            update sc
            set grade=@grade
            where sno=@sno and cno=@cno
       else
        insert sc (grade,sno,cno) values(@grade,@sno,@cno)
      

  3.   

    create procedure Upd_Grade
      @sno char(15),@cno char(6),@grade dec(4,1)
    as
      delete sc where sno=@sno and cno=@cno
      insert sc (grade,sno,cno) values(@grade,@sno,@cno)
    go