儲存過程的理解

2021-10-06 08:31:47 字數 2416 閱讀 9992

1.什麼是儲存過程?

儲存過程就是作為可執行物件存放在資料庫中的乙個或多個sql命令。

通俗來講:儲存過程其實就是能完成一定操作的一組sql語句。

2.儲存過程的優點和缺點

優點:響應時間上來說有優勢,可以給我們帶來執行效率提高的好處,且使用儲存過程的系統更加穩定。

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

3.為什麼要用儲存過程?

a.效率高: 儲存過程編譯一次後,就會存到資料庫,每次呼叫時都直接執行。

b.安全性高:完成某個特定功能的儲存過程一般只有特定的使用者可以使用,具有使用身份限制,更安全。

c.復用性高:儲存過程往往是針對乙個特定的功能編寫的,當再需要完成這個特定的功能時,可以再次呼叫該儲存過程。

1.不帶引數的儲存過程

select

*from

books

go--建立儲存過程

create proc cp_sclect_books

asselect

*from books

--呼叫

exec cp_sclect_books

alter--修改

2.帶輸入引數的儲存過程

go

alter proc cp_select_books_byname

( @name nvarchar(50

))asselect

*from

books

where

name like'%'

+@name+

'%'--呼叫

exec cp_select_books_byname'奇奇'

3.帶輸入,帶輸出引數且進行模糊查詢,返回記錄數,還要返回記錄

go

create proc cp_select_bynameex

(@name nvarchar(50

),@rowcount int

out)

asselect

*from

books

where name like '%'

+@name+

'%'select @rowcount=

count(*

)from

books

where name like '%'

+@name+

'%'--呼叫

go--定義乙個變數,接收返回值@rowcount

declare @rows int

exec cp_select_bynameex'奇奇'

,@rows out

print @rows

區域性變數的定義:必須先用declare命令定以後才可以使用,declare

4.建立乙個儲存過程,可以進行分頁查詢

go

create proc cp_page

(@name nvarchar(50

),--名稱

@pageindex int

,--頁碼

@pagesize int

,--每頁顯示多少條

@pagerows 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

)order by id

--滿足條件工多少條

select @pagerows=

count(*

)from

books

where name like'%'

+@name+

'%'--呼叫

declare @prows int

exec cp_page'貓狗',1

,10,@prows out

print @prows

注意,在sql server中,所有使用者定義的變數都以「@」開頭,output關鍵字表示這個引數是用來輸出的,as之後就是儲存過程內容了。

儲存過程的理解

1.什麼是儲存過程?儲存過程就是作為可執行物件存放在資料庫中的乙個或多個sql命令。通俗來講 儲存過程其實就是能完成一定操作的一組sql語句。2.儲存過程的優點和缺點 優點 響應時間上來說有優勢,可以給我們帶來執行效率提高的好處,且使用儲存過程的系統更加穩定。缺點 維護性較差,相對於簡單sql,儲存...

儲存過程的理解

儲存過程 stored procedure 是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,它儲存在資料庫中,一次編譯後永久有效,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件。在資料量特別龐大的情況下利用儲存過程能達到倍速的效...

理解T SQL 儲存過程

儲存過程的定義 描述就不多說了,都明白。直接從基本的儲存過和開始講起。1.建立儲存過程 create schema name.procedure name number varying default out put n with n procedure option可以有recompile enc...