日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁西西教程數(shù)據(jù)庫教程 → SQL Server存儲過程入門學(xué)習(xí)

      SQL Server存儲過程入門學(xué)習(xí)

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/4/11 11:11:27字體大。A-A+

      作者:西西點擊:0次評論:0次標簽: 存儲過程

      存儲過程的定義,

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

      sql server 的系列版本中,存儲過程分為兩類:系統(tǒng)提供的存儲過程和用戶自定義存儲過程。系統(tǒng)SP,主要存儲master 數(shù)據(jù)庫中,并以sp_為前綴并且系統(tǒng)存儲過程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理SQL Server。

      用戶自定義存儲過程是由用戶創(chuàng)建,并能完成某一特定功能,如:查詢用戶所需數(shù)據(jù)信息的存儲過程。

      這里我們看看存儲過程的好處;

      (1)重復(fù)使用。存儲過程可以重復(fù)使用,從而可以減少數(shù)據(jù)庫開發(fā)人員的工作量。

      (2)提高性能。存儲過程在創(chuàng)建的時候就進行了編譯,將來使用的時候不用再重新編譯。一般的SQL語句每執(zhí)行一次就需要編譯一次,所以使用存儲過程提高了效率。

      (3)減少網(wǎng)絡(luò)流量。存儲過程位于服務(wù)器上,調(diào)用的時候只需要傳遞存儲過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。

      (4)安全性。參數(shù)化的存儲過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權(quán)限應(yīng)用于存儲過程。

      好了,我們來看看創(chuàng)建的基本語法

      定義存儲過程的語法

      CREATEPROC[EDURE]存儲過程名

      @參數(shù)1數(shù)據(jù)類型=默認值,

      …… ,

      @參數(shù)n數(shù)據(jù)類型OUTPUT

      AS

      SQL語句

      GO

      參數(shù)是可選的

      參數(shù)分為輸入?yún)?shù)、輸出參數(shù)

      輸入?yún)?shù)允許有默認值

      這里來創(chuàng)建一個簡單的存儲過程

      CREATE PROCEDURE UserLogin@name varchar(20),@password varchar(20)

      AS

      -- 定義一個臨時用來保存密碼的變量--DECLARE @strPwd NVARCHAR(20) 這里先不介紹變量。稍后的文章會詳細講到BEGINselect * from userinfo where userName=@name and userPass=@passwordENDGO

      首先我們用簡單的sql查詢

      select * from userinfo where userName='admin'

      查詢結(jié)果:

      ---------------------

      UserName UserPass

      Admin Admin

      現(xiàn)在我們來執(zhí)行我們的存儲過程exec UserLogin admin,admin

      --或這樣調(diào)用:EXEC UserLogin @name='admin',@password='admin'

      查詢結(jié)果:

      ---------------------

      UserName UserPass

      Admin Admin

      注意,在SQL SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關(guān)鍵字表示這個參數(shù)是用來輸出的,AS之后就是存儲過程內(nèi)容了。只要將以上代碼在“查詢分析器”里執(zhí)行一次,SQL SERVER就會在當前數(shù)據(jù)庫中創(chuàng)建一個名為“UserLogin”的存儲過程。你可以打開“企業(yè)管理器”,選擇當前操作的數(shù)據(jù)庫,然后在左邊的樹型列表中選擇"可編程性->存儲過程",此時就可以在右邊的列表中看到你剛剛創(chuàng)建的存儲過程了(如果沒有,刷新一下即可)。

      看到了在數(shù)據(jù)中調(diào)用存儲過程的方法有兩種(這里EXEC與EXECUTE等效);

      EXEC過程名 參數(shù)值1,參數(shù)值2,....

      或者

      EXEC 參數(shù)1=參數(shù)值1,參數(shù)2=參數(shù)值2....

      上面我們也看到了。

      創(chuàng)建這樣的存儲過程有什么用呢,不是只能在數(shù)據(jù)中查看賽。

      我們在做web或者winform 程序,假設(shè)需要個登錄,好,我們可以調(diào)用用這個存儲過程來登錄,根據(jù)傳入的參數(shù),如果查詢出來有記錄,那么這條記錄在數(shù)據(jù)庫中存在,表示登錄成功,否則失敗。

      這樣做的目的更加安全,可以防止sql注入。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)