数据库知识补充
1.sql编程中的变量
2.条件,循环结构
3.事务
4.存储过程
--创建存储过程的语法
if exists(select * from sysobjects where name='sp_selectStudent')
 drop procedure sp_selectStudent
go
create procedure sp_selectStudent
     --定义参数
     @gradeid int
     --可以定义输出参数,也有返回值,只有返回整型 return 0
as
 select * from Student where XSGrade=@gradeid
 --写语句
go
--调用存储过程
exec sp_selectStudent 10
----增加年级的存储过程
if exists(select * from sysobjects where name='sp_addGrade')
 drop procedure sp_addGrade
go
create procedure sp_addGrade  --定义存储过程
 @njname varchar(20)  --定义参数 各个参数,隔开
as
 insert into Grade(NJName) values(@njname)
go
--调用存储过程
exec sp_addGrade 'S1'
--删除年级的存储过程,如果有学生,先删学生,再删年级
--[存储过程封装业务功能,使用事务] 
if exists(select * from sysobjects where name='sp_deleteGrade')
 drop procedure sp_deleteGrade
go
create procedure sp_deleteGrade
 @gradeid int --要删除的年级id
as
 begin transaction --1开启事务
 declare @err int --2.错误变量
 set @err=0
 --一个语句一个语句执行
 delete from Student where XSGrade=@gradeid
 set @err=@err+@@ERROR --错误累加
 --
 delete from Grade where NJId=@gradeid
 set @err=@err+@@ERROR
 --
 if(@err>0)
  begin
    rollback transaction--回退事务
  end
 else
  begin
    commit  transaction  --提交事务
  end
go
--作业:
--1.用存储过程增加学生 
   --1.1 在数据库写增加的存储过程 1.2 在访问层调用该存储过程
--2.用存储过程  按学生编号删除学生
    --2.1先写  2.2再调用
--3.选做:用存储过程查询所有学生信息
if exists(select * from sysobjects where name='sp_selectAllStudent')
 drop procedure sp_selectAllStudent
go
create procedure sp_selectAllStudent
 
as
 select * from Student
 --写语句
go