數據庫存儲過程


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM