--1.什麼是存儲過程 --存儲過程(procedure)相似於java語言中的方法 --用來執行管理任務或應用複雜的業務規則 --存儲過程能夠帶參數,也能夠返回結果 --存儲過程能夠包含數據操做語句、變量、邏輯 控制語句等 --2.存儲過程的優勢 --執行速度更快 --容許模塊化程序設計 --提升系統安全性 --減小網絡流通量 --3.存儲過程的分類 --系統存儲過程 --由系統定義,存放在master數據庫中 --系統存儲過程的名稱都以「sp_」開頭或」xp_」開頭 --用戶自定義存儲過程 --由用戶在本身的數據庫中建立的存儲過程 --4.定義存儲過程的語法 --Create Procedure procedure_name --As --Sql_statement --4.1 建立存儲過程 create procedure p1 as select productid,productname,unitprice from products --4.2調用 execute p1 --4.3存儲過程的參數分兩種: 輸入參數 輸出參數 create procedure p2 --定義輸入輸出參數 @pname varchar(10)--注意,聲明變量不須要declare as select productid,productname,unitprice from products where productname like '%'+@pname+'%' execute p2 'ch' create procedure p3 @num1 int, --輸入參數 @num2 int, @sum int output --輸出參數 as set @sum = @num1 + @num2 declare @s int exec p3 1,1,@s output print @s 5.1建立函數 create function f1(@num1 int,@num2 int) returns int --聲明函數返回類型 as begin declare @sum int set @sum = @num1+@num2 return @sum --函數的返回值 end --5.2調用函數方式:函數名() print dbo.f1(1,1) --6.分頁 create procedure p4 @pageNo int=1, @pageSize int=5, @totalPage int output as select top (@pageSize) productid,productname,unitprice from products where productid not in (select top ((@pageNo-1)*@pageSize) productid from products) --總頁數 declare @total int select @total=count(*) from products --統計products表中的總記錄數 10/5 12/5 set @totalPage = @total / @pageSize if @total%@pageSize<>0 set @totalPage=@totalPage+1 --調用者獲得第幾頁的數據和總頁數 declare @t int exec p4 5,3,@t output print @t --瞭解內容1 --能夠使用PRINT語句顯示錯誤信息,但這 些信息是臨時的,只能顯示給用戶 --RAISERROR 顯示用戶定義的錯誤信息時 --可指定嚴重級別, --設置系統變量@@ERROR --記錄所發生的錯誤等 --瞭解內容1:經常使用的系統存儲過程