儲存過程的使用

2021-10-06 09:11:22 字數 1752 閱讀 2626

儲存過程是乙個預編譯的sql語句,優點是允許模組化的設計,就是說只需建立一次,以後在程式中就可以呼叫多次。

可以用乙個「execute 儲存過程名 引數」命令來呼叫儲存過程。

優勢:如果某次操作需要執行多次sql,使用儲存過程比單純sql語句執行要快。響應時間上來說有優勢,可以給我們帶來執行效率提高的好處,且使用儲存過程的系統更加穩定。

缺點:維護性較差,相對於簡單sql,儲存過程並沒有什麼優勢,並且在進行除錯時比較困難

1,不帶引數的儲存過程建立和呼叫

--建立儲存查詢資料

create proc cp_select_book

asselect *

from books

--呼叫``

exec cp_select_book

2,帶輸入引數的儲存過程的建立和呼叫

--根據名稱查詢

gocreate proc cp_select_book_byname

(@name varchar(50

))as select *

from books where name like'%'

+@name+

'%'--呼叫

exec cp_select_book_byname'海底'

3,帶輸出引數的儲存過程的建立和呼叫

--根據名稱查詢,返回記錄,同時放回記錄數

gocreate proc cp_select_books_bynameext

(@name varchar(50

),@recordrows int out--輸出型別)as

select *

from books where name like '%'

+@name+

'%'select @recordrows=

count(*

)from books

--呼叫

--定義乙個變數,接收返回引數 @recordrows 的值

declare @rs int

exec cp_select_books_bynameext'海底'

,@rs out

print '查詢的記錄數是:'

+convert

(varchar(50

),@rs)

4,簡單分頁的儲存過程的建立和呼叫

--根據名稱,頁碼,每頁顯示條數--輸入引數

--返回查詢條件的總記錄數 --輸出引數

--現實查詢結果

gocreate proc cp_page

(@name varchar(50

),@pageindex int,

--頁碼

@pagesize int,

--每頁顯示條數

@rs int out --總記錄數)as

select top

(@pagesize)

*from books

where id not in

(select top

(@pagesize*

(@pageindex-1)

) id

from books where name like '%'

+@name+

'%'order by id

)and name like '%'

+@name+

'%' order by id

儲存過程的使用

sqlparameter parameters parameters 0 value tblname parameters 1 value fldname dbhelpersql.runprocedure up tblname uid delete parameters out i public s...

儲存過程的使用

儲存過程 儲存過程 儲存過程就是提前已經編譯好的一段pl sql語言,放置在資料庫端 可以直接被呼叫。這一段pl sql一般都是固定步驟的業務。給指定員工漲100塊錢 create or replace procedure p1 eno emp.empno type isbegin update e...

儲存過程的使用

儲存過程 如下 alter procedure dbo.testoutput p1 int p2 int output,p3 int as set nocount on select p2 count from testproc where testid between p1 and p3 retu...