一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - SQL Server存儲過程入門學習

SQL Server存儲過程入門學習

2020-01-12 17:22MSSQL教程網 Sql Server

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

存儲過程的定義,

存儲過程(Stored Procedure),是一組為了完成特定功能的SQL 語句,集經編譯后存儲在數據庫中,用戶通過指定存儲過程的名字并給出參數,如果該存儲過程帶有參數來執行。
在SQL Server 的系列版本中,存儲過程分為兩類:系統提供的存儲過程和用戶自定義存儲過程。系統SP,主要存儲master 數據庫中,并以sp_為前綴并且系統存儲過程主要是從系統表中獲取信息,從而為系統管理員管理SQL Server。
用戶自定義存儲過程是由用戶創建,并能完成某一特定功能,如:查詢用戶所需數據信息的存儲過程。

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

(1)重復使用。存儲過程可以重復使用,從而可以減少數據庫開發人員的工作量。
(2)提高性能。存儲過程在創建的時候就進行了編譯,將來使用的時候不用再重新編譯。一般的SQL語句每執行一次就需要編譯一次,所以使用存儲過程提高了效率。
(3)減少網絡流量。存儲過程位于服務器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網絡傳輸的數據量。
(4)安全性。參數化的存儲過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權限應用于存儲過程。

好了,我們來看看創建的基本語法

定義存儲過程的語法

CREATEPROC[EDURE]存儲過程名
@參數1數據類型=默認值,
…… ,
@參數n數據類型OUTPUT
AS
SQL語句
GO
參數是可選的
參數分為輸入參數、輸出參數
輸入參數允許有默認值
這里來創建一個簡單的存儲過程

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'
查詢結果:
---------------------
UserName UserPass
Admin Admin

現在我們來執行我們的存儲過程
exec UserLogin admin,admin
--或這樣調用:
EXEC UserLogin @name='admin',@password='admin'

查詢結果:
---------------------
UserName UserPass
Admin Admin

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

EXEC過程名 參數值1,參數值2,....

或者

EXEC 參數1=參數值1,參數2=參數值2....

上面我們也看到了。

創建這樣的存儲過程有什么用呢,不是只能在數據中查看賽。
我們在做web或者winform 程序,假設需要個登錄,好,我們可以調用用這個存儲過程來登錄,根據傳入的參數,如果查詢出來有記錄,那么這條記錄在數據庫中存在,表示登錄成功,否則失敗。
這樣做的目的更加安全,可以防止sql注入。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲无线一二三四区 | 欧美成人香蕉在线观看 | gay男男白袜chinese | 国产成人影院在线观看 | 色哟哟在线资源 | 国产欧美一区二区三区久久 | 特级av毛片免费观看 | 狠狠色婷婷狠狠狠亚洲综合 | 91麻豆精品国产自产在线观看 | 亚洲卡一卡2卡三卡4卡无卡三 | 99久久国产综合精麻豆 | 91青青视频 | 青草国产在线观看 | 国产成人精品一区二三区在线观看 | 国产一区二区三区欧美精品 | 国产福利不卡视频 | 久久这里只有精品国产精品99 | 寡妇快点好大好爽视频 | 亚洲精品网址 | 四虎成人www国产精品 | 日韩精品视频美在线精品视频 | 99热久久这里只精品国产www | 日本女人www | 国产精品久久久久久久免费大片 | 校花被吃奶还摸下面 | 久久这里只有精品视频e | 日韩免费视频播放 | 国产梦呦精品 | 久久精品熟女亚洲AV国产 | 成人欧美一区二区三区黑人 | 91入口免费网站大全 | 天若有情1992国语版完整版 | 日本中出视频 | 99精品国产自在现线观看 | 成人深夜视频 | 99久久一区二区精品 | 日本黄大片影院一区二区 | 97蜜桃网| 成人做视频免费 | 97影院网| 国产精品久久久久久福利 |