儲存過程是乙個預編譯的sql語句 ,編譯後可多次使用。
優勢:響應時間上來說有優勢,可以給我們帶來執行效率提高的好處,且使用儲存過程的系統更加穩定
缺點:維護性較差,相對於簡單sql,儲存過程並沒有什麼優勢,並且在進行除錯時比較困難
可以提高執行效率,並且使用儲存過程的系統更穩定。
更多的可以參考 【隨風飄揚中】的 儲存過程的作用和意義
當乙個業務需要操作多個表時可以使用儲存過程來提公升效率
--建立儲存過程
create
proc cp_books
as--操作語句
select
*from books
--呼叫不帶參的儲存過程
exec cp_books
--多個引數使用逗號隔開
create
proc cp_books
( @name nvarchar(20)
)as--操作語句
select
*from books where name like
'%'+
@name
+'%'
--呼叫帶參的儲存過程
--多個引數使用逗號隔開不需要小括號包裹
exec cp_books @name
='aa'
--建立儲存過程--
create
proc cp_books
( @mycount
int output --輸出引數需要output)as
--操作語句
select
@mycount
=count(*
)from books
--呼叫有輸出的儲存過程
--先定義乙個變數進行接收
declare
@mycount
intset
@mycount
=exec cp_books
print
@mycount
--建立儲存過程--
create
proc cp_books
( @name nvarchar(20)
@mycount
int output --輸出引數需要output)as
--操作語句
select
@mycount
=count(*
)from books
select
*from books where name like
'%'+
@name
+'%'
--呼叫有輸出的儲存過程
--先定義乙個變數進行接收
declare
@mycount
intset
@mycount
=exec cp_books
print
@mycount
-- 判斷要建立的儲存過程名是否存在
ifexists
(select
*from dbo.sysobjects
where id = object_id(n'[dbo].[儲存過程名]'
)and objectproperty(id, n'isprocedure')=
1)-- 刪除儲存過程
drop
procedure
[dbo]
.[儲存過程名]
--儲存過程
--建立帶輸入引數的儲存過程
gocreate
proc cp_select_name
(@name nvarchar(20)
,@pageindex
int,
@pagecount
int)
as--offset a rows ,將前a條記錄捨去,fetch next b rows only ,向後在讀取b條資料。
--此方法只適用於2012及以上版本
select
*from book where name like
'%'+
@name
+'%'
order
by id offset
@pagecount
*@pageindex
rows
fetch
next
@pagecount
rows only
exec cp_select_name @name
='js'
,@pageindex=2
,@pagecount
=10
sql server儲存過程
建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...
SQLSERVER儲存過程
sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...
SQL Server 儲存過程
儲存過程概念 儲存過程優點 儲存過程的介面 儲存過程的解析 編譯過程 儲存過程安全性 檢視儲存過程 加密 解密儲存過程 儲存過程概念 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 帶參儲存過程 來執行...