數據庫知識補充
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
