最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年08月05日 10:17:27   作者:  
存儲過程(Stored Procedure),是一組為了完成特定功能的SQL 語句,集經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù),如果該存儲過程帶有參數(shù)來執(zhí)行

存儲過程的定義,

存儲過程(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)建的時候就進(jìn)行了編譯,將來使用的時候不用再重新編譯。一般的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ù)類型=默認(rèn)值,
…… ,
@參數(shù)n數(shù)據(jù)類型OUTPUT
AS
SQL語句
GO
參數(shù)是可選的
參數(shù)分為輸入?yún)?shù)、輸出參數(shù)
輸入?yún)?shù)允許有默認(rèn)值
這里來創(chuàng)建一個簡單的存儲過程

CREATE PROCEDURE UserLogin@name varchar(20),@password varchar(20)
AS
-- 定義一個臨時用來保存密碼的變量--DECLARE @strPwd NVARCHAR(20) 這里先不介紹變量。稍后的文章會詳細(xì)講到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就會在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個名為“UserLogin”的存儲過程。你可以打開“企業(yè)管理器”,選擇當(dāng)前操作的數(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)文章

  • 基于Python的SQL Server數(shù)據(jù)庫實現(xiàn)對象同步輕量級

    基于Python的SQL Server數(shù)據(jù)庫實現(xiàn)對象同步輕量級

    這篇文章主要介紹了基于Python的SQL Server數(shù)據(jù)庫對象同步輕量級實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • sqlserver 觸發(fā)器實例代碼

    sqlserver 觸發(fā)器實例代碼

    何為觸發(fā)器?在SQL Server里面也就是對某一個表的一定的操作,觸發(fā)某種條件,從而執(zhí)行的一段程序。觸發(fā)器是一個特殊的存儲過程
    2011-12-12
  • 一次性壓縮Sqlserver2005中所有庫日志的存儲過程

    一次性壓縮Sqlserver2005中所有庫日志的存儲過程

    通過下面這個可以執(zhí)行單個數(shù)據(jù)庫日志壓縮,問題每次都要寫數(shù)據(jù)庫名字,日志大的話執(zhí)行速度沒有那么快
    2012-01-01
  • T-SQL篇如何防止SQL注入的解決方法

    T-SQL篇如何防止SQL注入的解決方法

    所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令,對于這種行為,我們應(yīng)該如何制止呢?本文將介紹一種方法,希望可以幫助有需要的朋友
    2012-11-11
  • SQL Server中實現(xiàn)自定義數(shù)據(jù)加密功能

    SQL Server中實現(xiàn)自定義數(shù)據(jù)加密功能

    在當(dāng)今數(shù)字化時代,數(shù)據(jù)安全已成為企業(yè)和個人最為關(guān)注的問題之一,SQL Server提供了多種數(shù)據(jù)加密技術(shù),包括透明數(shù)據(jù)加密(TDE)、備份加密以及列級加密等,本文將詳細(xì)介紹如何在SQL Server中實現(xiàn)自定義數(shù)據(jù)加密功能,需要的朋友可以參考下
    2024-08-08
  • SQL學(xué)習(xí)筆記一SQL基礎(chǔ)知識

    SQL學(xué)習(xí)筆記一SQL基礎(chǔ)知識

    剛開始接觸sqlserver的朋友可以參考下。雖然文字比較短,但內(nèi)容都是經(jīng)驗之談。
    2011-08-08
  • SQLserver刪除某數(shù)據(jù)庫中所有表實現(xiàn)思路

    SQLserver刪除某數(shù)據(jù)庫中所有表實現(xiàn)思路

    方便刪除數(shù)據(jù)庫中所有的數(shù)據(jù)表,清空數(shù)據(jù)庫,有些有約束,不能直接delete,因為那樣太危險了所以需要先刪除庫中的約束,接下來提供詳細(xì)實現(xiàn)代碼,感興趣的你可以參考下哦,或許對你學(xué)習(xí)有所幫助
    2013-02-02
  • 大容量csv快速內(nèi)導(dǎo)入sqlserver的解決方法(推薦)

    大容量csv快速內(nèi)導(dǎo)入sqlserver的解決方法(推薦)

    最近遇到這樣的問題:導(dǎo)入csv 數(shù)據(jù),并對導(dǎo)入的數(shù)據(jù)增加一個新的列date datetime,下面通過本文給大家分享大容量csv快速內(nèi)導(dǎo)入sqlserver的解決方法,感興趣的朋友一起看看吧
    2017-07-07
  • sql存儲過程幾個簡單例子

    sql存儲過程幾個簡單例子

    存儲過程是一組為了完成特定功能的SQL語句集,是利用SQL Server所提供的Transact-SQL語言所編寫的程序。經(jīng)編譯后存儲在數(shù)據(jù)庫中。存儲過程是數(shù)據(jù)庫中一個重要的對象
    2016-02-02
  • 將表數(shù)據(jù)生成Insert腳本 比較好用的生成插入語句的SQL腳本

    將表數(shù)據(jù)生成Insert腳本 比較好用的生成插入語句的SQL腳本

    比較好用的生成插入語句的SQL腳本 將表數(shù)據(jù)生成Insert腳本
    2010-05-05

最新評論

安徽省| 定安县| 秦安县| 上杭县| 凉城县| 若羌县| 茂名市| 安达市| 华宁县| 镇赉县| 赤峰市| 鱼台县| 霍山县| 利川市| 会泽县| 景东| 潞西市| 永泰县| 全椒县| 耒阳市| 志丹县| 涟源市| 盘山县| 平和县| 科技| 陈巴尔虎旗| 彭水| 怀安县| 崇信县| 柘城县| 长白| 石屏县| 梧州市| 上虞市| 安塞县| 浙江省| 库车县| 南川市| 策勒县| 玛纳斯县| 兰考县|