数据库知识补充
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
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