S2 day 07儲存過程

2021-07-26 05:51:50 字數 1732 閱讀 8121

--建立使用者自定義 的儲存過程

--之建立帶輸入引數的儲存引數

use myschool

--檢測是否存在usp_studentinfo儲存過程

if exists(select * from sysobjects where name='usp_studentinfo')

drop procedure usp_studentinfo

go--建立儲存過程

--如果儲存過程的引數後面有'output'關鍵字,則表示此引數為輸出引數

create procedure usp_studentinfo

@sorce int--建立輸入引數

asif(@sorce<0 or @sorce>100)

begin

raiserror('被驢踢了',16,1)--處理錯誤資訊(16,1)一般固定

endelse

begin

select studentname,studentresult from

student,result

where student.studentno=result.studentno

and studentresult>@sorce

end--執行帶引數的儲存過程

exec usp_studentinfo 90--輸入引數具體賦值且檢視

go--帶out引數的儲存過程

use myschool

go--檢測是否存在usp_studentinfo儲存過程

if exists(select * from sysobjects where name='usp_getpagelist')

drop procedure usp_getpagelist

gocreate procedure usp_getpagelist

@pageindex int, --第幾頁(輸入引數)

@pagesize int ,--頁大小(輸入引數)

@totalrecords int out,--總計錄數(輸出引數)

@totalpages int out--總頁面(輸出引數)

asselect @totalrecords=count(1) from student--記錄學生總數

set @totalpage=ceiling(@totalrecords*1.0/@pagesize)--記錄總頁數

--分頁操作

select * from

(-- 生成帶序號的集合

select *,row_number() over(order by studentno)as myid

from student

)as temp

--開始序號 --結束序號

where myid between @pageindex*@pagesize-(@pagesize-1) and @pageindex*@pagesize

--建立輸出變數

declare @records int

declare @pages int

--執行帶引數的儲存過程和輸出帶引數的儲存過程

exec usp_getpagelist 2,3,@records out,@pages out

select @records--輸出總序號

select @pages--輸出總頁數

07章 儲存過程

一 儲存過程的定義 在資料庫伺服器上 db server 儲存的預先編譯好的一堆sql語句 是sql語句和控制語句的預編譯集合,儲存在資料庫裡,可由應用程式呼叫執行,而且允許使用者宣告變數 邏輯控制語句及其他強大的編譯功能。它可以接收引數 輸出引數 返回單個或多個結果集及返回值。為什麼需要儲存過程?...

儲存過程 2

1,呼叫沒有引數的儲存過程 set conn server.createobject adodb.connection set cmd server.createobject adodb.command strconn dsn pubs uid sa pwd conn.open strconn se...

儲存過程2

今天老師又帶我們回顧了儲存過程方面的知識 1 我們之所以要學習儲存過程是因為使用儲存過程可以一次性執行成批的sql 語句,不僅節省了我們的時間而且也提高了伺服器的操作速度。2 儲存過程的優點 1 批處理,減少客戶和伺服器之間的交流次數 2 伺服器端執行,移植性好 3 安全要求高的行業 4 包含流程控...