存儲過程的理解

存儲過程

定義

存儲過程(Stored Procedure)是在大型數據庫系統中,一組爲了完成特定功能的SQL 語句集,它存儲在數據庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象。在數據量特別龐大的情況下利用存儲過程能達到倍速的效率提升

存儲過程的創建

基本創建語法

create proc sp_name
@[參數名] [類型],@[參數名] [類型]
as
begin
.........
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:簡單分頁的存儲過程的創建和調用

--根據名稱,頁碼,每頁顯示條數	--輸入參數
go
create 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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章