成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)系數(shù)據(jù)庫SQL之可編程性存儲過程

BigTomato / 2973人閱讀

摘要:前言前面關(guān)系數(shù)據(jù)庫之可編程性函數(shù)用戶自定義函數(shù)一文提到關(guān)系型數(shù)據(jù)庫提供了可編程性的函數(shù)存儲過程事務(wù)觸發(fā)器及游標(biāo),前文已介紹了函數(shù),本文來介紹一下存儲過程的創(chuàng)建執(zhí)行刪除。

前言

前面關(guān)系數(shù)據(jù)庫SQL之可編程性函數(shù)(用戶自定義函數(shù))一文提到關(guān)系型數(shù)據(jù)庫提供了可編程性的函數(shù)、存儲過程、事務(wù)、觸發(fā)器及游標(biāo),前文已介紹了函數(shù),本文來介紹一下存儲過程的創(chuàng)建、執(zhí)行、刪除。(還是以前文中銀行系統(tǒng)為例)

概述

存儲過程是一組為了完成特定功能的SQL語句集合,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名稱并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行。

語法
創(chuàng)建存儲過程
--創(chuàng)建存儲過程
CREATE PROC[EDURE] <存儲過程名稱> 
    -- 添加存儲過程所需的參數(shù)
    [
     <@參數(shù)1> <參數(shù)類型1> [= 默認(rèn)值] [OUTPUT], 
     ……
     <@參數(shù)n> <參數(shù)類型n> [= 默認(rèn)值] [IN|OUT|OUTPUT]
    ]
AS
BEGIN
    -- 這里面可以寫為變量賦值語句
    SQL語句塊
END

注意

其中存儲過程名不能超過128個字,每個存儲過程中最多設(shè)定1024個參數(shù);

存儲過程所需的參數(shù)可有可無,如果有參數(shù)為帶參數(shù)存儲過程,沒有參數(shù)就是無參數(shù)存儲過程;

帶參數(shù)存儲過程參數(shù)后面有關(guān)鍵字OUT|OUTPUT為帶輸出參數(shù)存儲過程;

[IN|OUT|OUTPUT]介紹

IN:在參數(shù)后面加了IN關(guān)鍵字的表示為輸入?yún)?shù),默認(rèn)的情況就是輸入?yún)?shù);

OUT:在參數(shù)后面加了OUT關(guān)鍵字的表示為輸出參數(shù);

OUTPUT:在參數(shù)后面加了OUTPUT關(guān)鍵字表示為輸入輸出參數(shù),既是傳入?yún)?shù)也是輸出參數(shù)。


調(diào)用存儲過程
--調(diào)用存儲過程
EXEC<存儲過程名稱> [參數(shù)列表]

刪除存儲過程
--刪除存儲過程
DROP PROC[EDURE] <存儲過程名稱>
示例
/*
* 查詢交易信息表中總的交易金額,以及支取和存入的總金額,并打印出來
*/
--判斷存儲過程是否存在
--存在則刪除
if exists(select * from sysobjects where name = "proc_getTransMoney")
drop procedure proc_getTransMoney
go
--創(chuàng)建無參數(shù)存儲過程
create proc proc_getTransMoney
as
begin
    declare @sum_money money        --交易總額
    declare @get_money money        --支出總額
    declare @sav_money money        --存入總額
    select @sum_money = sum(TransMoney) from TransInfo
    select @get_money = sum(TransMoney) from TransInfo where TransType = "存款"
    select @sav_money = sum(TransMoney) from TransInfo where TransType = "取款"
    print "交易總額="+ltrim(convert(char,@sum_money))
    print "存入總額="+ltrim(convert(char,@sav_money))
    print "支出總額="+ltrim(convert(char,@get_money))
end
go
--執(zhí)行存儲過程
exec proc_getTransMoney
go

/*
* 查詢指定賬戶掛失的賬戶信息
*/
--判斷存儲過程是否存在
--存在則刪除
if exists(select * from sysobjects where name = "proc_getLostAccount")
drop procedure proc_getLostAccount
go
--創(chuàng)建帶參數(shù)輸出存儲過程
create proc proc_getLostAccount
--
@CId varchar(20) OUTPUT
as
begin
    select A.CustName as 姓名, A.IDCard AS 身份證號, A.TelePhone as 電話號碼,
    C.CardID as 銀行卡號,A.Address as 地址
    from AccountInfo as A inner join CardInfo as C on A.CustID = C.CustID
    where C.CardID =@CId AND C.IsLost = "是"
end
go
--執(zhí)行存儲過程
declare @CardID  varchar(20);
set @CardID= "銀行卡號";
exec proc_getLostAccount  @CardID output;
print @CardID;
go

*本文就介紹到這里。
如有疑問請聯(lián)系我。*

原文來自:簡書

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17539.html

相關(guān)文章

  • 關(guān)系數(shù)據(jù)庫SQL編程事務(wù)

    摘要:前言前面關(guān)系數(shù)據(jù)庫之可編程性函數(shù)用戶自定義函數(shù)一文提到關(guān)系型數(shù)據(jù)庫提供了可編程性的函數(shù)存儲過程事務(wù)觸發(fā)器及游標(biāo),前文已介紹了函數(shù)存儲過程,本文來介紹一下事務(wù)的使用。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。 前言 前面關(guān)系數(shù)據(jù)庫SQL之可編程性函數(shù)(用戶自定義函數(shù))一文提到關(guān)系型數(shù)據(jù)庫提供了可編程性的函數(shù)、存儲過程、事務(wù)、觸發(fā)器及游標(biāo),前文已介紹了函數(shù)、存...

    skinner 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<