今天講下T-sql語法中存儲過程的用法,我們一開始學習數據庫語言的時候就是用一些簡單的insert,select等語法,但是隨著我們學習數據庫的深入,就會發現一些簡單的語法滿足不了我們的要求,比如處理一些業務邏輯,多表關聯的時候,還有就是雖然程序或是簡單的sql語句也會實現其效果,但是性能或是效率會很低。
這時候我們就會用到T-sql中的存儲過程,存儲過程就像C#中的方法一樣,傳遞參數,執行一些操作,返回相應的值。
我們用SQLSERVER2008自帶的AdventureWorks示例數據庫來講解。
首先我們新建一個存儲過程,關鍵字為Procedure,示例代碼:
create
procedure
proc_Sales_SalesReason
as
begin
select
*
from
Sales.SalesReason;
end
我們新建的一個 proc_Sales_SalesReason 存儲過程,執行查詢操作,一般存儲過程命名為proc_+名稱,這樣有利于識別。
執行存儲過程示例代碼:
execute
proc_Sales_SalesReason
drop
procedure
proc_Sales_SalesReason
--
刪除存儲過程
修改存儲過程的話用alter關鍵字。
以上只是簡單的存儲過程,就想無參數的方法一樣,下面是帶參數的示例代碼:
create
procedure
proc_Sales_SalesReason
(
@SalesReasonID
int
,
@Name
nvarchar
(
50
),
@ReasonType
nvarchar
(
50
),
@ModifiedDate
datetime
)
as
begin
insert
into
Sales.SalesReason(SalesReasonID, Name, ReasonType, ModifiedDate)
values
(
@SalesReasonID
,
@Name
,
@ReasonType
,
@ModifiedDate
);
end
這是一個執行插入數據的存儲過程,執行示例代碼:
execute
proc_Sales_SalesReason
100
,
'
text1
'
,
'
as
'
,
'
2011-12-12
'
;
以上講解的都是一些簡單存儲過程的用法,在這里只是起到拋磚引玉的作用,大家可以有時間好好研究下,去處理一些復雜的業務邏輯。
下面我做了一個小示例
select :按價格范圍來查詢
要求:如果兩個參數均存在,則表示查詢該指定范圍的內容;
若均不存在,則查詢所有
若@PriceFrom參數存在,則,查詢>=@PriceFrom
@priceTo存在,則<=@priceTo
create
procedure
proc_SelectProductsWithPriceRange
(
@PriceFrom
money
,
@priceTo
money
)
as
begin
if
@PriceFrom
is
not
null
begin
if
@priceTo
is
not
null
begin
select
*
from
dbo.Products
where
Price
between
@PriceFrom
and
@priceTo
;
end
else
begin
select
*
from
dbo.Products
where
Price
>=
@PriceFrom
;
end
end
;
else
begin
if
@priceTo
is
not
null
begin
select
*
from
dbo.Products
where
Price
<=
@priceTo
;
end
else
begin
select
*
from
dbo.Products
end
end
end
;
執行存儲過程:
execute
proc_SelectProductsWithPriceRange
17
,
null
其實這些代碼都是大學時候學習的時候整理的,現在寫這些算是去復習一下,也想去幫助那些剛剛踏入編程行業的學子們(大牛們請飄過),我想在年前把這兩年整理的一些編程知識系統的整理下來,當然都是一些簡單的,并附一些示例,希望幫助初學者去理解,還希望大家關注一下。。。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

