儲存過程的理解

2021-10-06 09:11:22 字數 2285 閱讀 2004

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

基本建立語法

create proc sp_name

@[引數名]

[型別]

,@[引數名]

[型別]

asbegin

......

...end

/*注:「sp_name」為需要建立的儲存過程的名字,該名字不可以以阿拉伯數字開頭*/

首先建立資料庫表單

自己新增多行資料

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

--建立儲存根據名稱查詢資料

create proc cp_select_book_byname

as select *

from books

--呼叫

exec cp_select_book_byname

var foo =

'bar'

;

2.帶輸出引數的儲存過程的建立和呼叫

--根據名稱引數

create proc cp_select_book_bynames

( @name varchar(50

))as select *

from books where name like '%'

+@name+

'%'--呼叫

exec cp_select_book_bynames '紅樓夢'

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

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

create proc cp_select_books_bynameext

( @name varchar(50

),@recordrows int out --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(5

),@rs)

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

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

gocreate proc cp_page

( @name varchar(50

),@pageindex int,

--頁碼

@pagesize int,

--每頁顯示條數

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

select *

from books where id not in

(select top 5 id from books where name like '%三國%'

order by id

) and name like '%s三國%' order by id

select @rs =

count(*

)from books where name like '%'

+@name+

'%'declare @rss int

exec cp_page'三國',1

,5,@rss out

print '查詢的記錄數是:'

+convert

(varchar(50

),@rss)

儲存過程的理解

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

儲存過程的理解

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

理解T SQL 儲存過程

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