国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server存儲過程多角度介紹

2024-08-31 00:55:58
字體:
來源:轉載
供稿:網友
SQL Server存儲過程多角度介紹

什么是存儲過程:

存儲過程(PRocedure)類似于C#語言中的方法,它是SQL語句和控制流語句的預編譯集合。存儲過程存儲在數據庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變量、邏輯控制語句以及其他強大的編程功能。

存儲過程可包含邏輯控制語句和數據操作語句,它可以接收參數、輸出參數、返回單個或多個結果集以及返回值。

存儲過程在創建時即在服務器上進行編譯,所以執行起來比單個SQL語句快。

類似于C#中的類庫,SQL Server 提供了一些預編譯的存儲過程,這些存儲過程稱為“系統存儲過程”。

SQL Server中的存儲過程的特征如下:

1>接收輸入參數,并向調用過程或語句返回值。

2>包含在數據庫中執行操作或調用其他存儲過程的編程語句。

3>向調用過程返回狀態值,指示執行過程是否成功(如果失敗,還返回失敗原因)

使用存儲過程有下列優點:

1>允許模塊化程序設計

只需創建一次存儲過程并將其存儲在數據庫中,所以即可在程序中調用該過程任意次。

2>允許更快地執行

如果某操作需要大量的T-SQL代碼或需要重復執行,存儲過程將比T-SQL批處理代碼的執行要快。將在創建存儲過程時對其進行分析和優化,并可在首次執行該過程后使用該過程內存中的版本。但如果使用T-SQL批處理代碼,每次運行T-SQL語句時,都要從客戶端重復發送,并且在SQL-Server每次執行這些語句時,都要對其進行編譯和優化。

3>減少網絡流量

創建使用存儲過程后,一個需要數百行T-SQL代碼的操作,由一條執行該過程代碼的單獨語句就可實現,而不需要在網絡中發送數百行代碼

4>可作為安全機制使用

即使對于沒有直接執行存儲過程中語句的權限的用戶,也可授予他們執行該存儲過程的權限

存儲過程分為以下兩類:

1>系統存儲過程

2>用戶自定義存儲過程

常用的系統存儲過程:

sp_databases:列出服務器上的所有數據庫

sp_helpdb:報告有關指定數據庫或所有數據庫的信息

sp_renamedb:更改數據庫的名稱

sp_tables:返回當前環境下可查詢的對象的列表

sp_columns:返回某個表列的信息

sp_help:查看某個表的所有信息

sp_helpconstraint:查看某個表的約束

sp_helpindex:查看某個表的索引

sp_stored_procedures:列出當前環境中的所有存儲過程

sp_passWord:添加或修改登錄賬戶的密碼

sp_helptext:顯示默認值、未加密的存儲過程、用戶定義的存儲過程、觸發器或視圖的實際文本

另外,還有一個常用的擴展存儲過程:xp_cmdshell,它可以完成DOS命令下的一些操作,諸如創建文件夾、列出文件列表等。

http://www.cnblogs.com/roucheng/

用戶定義的存儲過程:

除了系統存儲過程,用戶還可以創建自己的存儲過程,可使用Microsoft SQL Management Studio或使用T-SQL語句,使用Microsoft SQL Management Studio創建存儲過程的步驟類似于視圖,用于創建存儲過程的T-SQL語句為CREATE PROCEDURE。所有的存儲過程都創建在當前數據庫中。

創建不帶參數的存儲過程:

使用T-SQL語句創建存儲過程的語法如下:

CREATE PROC[EDURE] 存儲過程名

AS

SQL語句

調用存儲過程:

EXEC 存儲過程名

創建帶輸入參數的的存儲過程:

輸入參數:可以在調用時向存儲過程傳遞參數,此類參數可用來在存儲過程中傳入值。

帶輸入參數的存儲過程T-SQL語句如下:

CREATE PROC[EDURE] 存儲過程名

@參數1 數據類型 [= 默認值],

……,

@參數n 數據類型 [= 默認值]

AS

SQL語句

調用存儲過程:

EXEC 存儲過程名 參數1的值,……,參數n的值

EXEC 存儲過程名 @參數1=值,……,@參數n=值

創建帶輸出參數的存儲過程:

輸出參數:如果希望返回值,則可以使用輸出參數,輸出參數后有“OUTPUT”標記,執行存儲過程后,將把返回值存放在輸出參數中,可供其他T-SQL語句讀取訪問。

帶輸出參數的存儲過程T-SQL語法如下:

CREATE PROC[EDURE] 存儲過程名

@參數1 數據類型 [OUTPUT ],

……,

@參數n 數據類型 [OUTPUT]

AS

SQL語句

調用存儲過程:

EXEC 存儲過程名 變量名 OUTPUT


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨眉山市| 丹巴县| 杭锦后旗| 韶关市| 西青区| 马边| 旺苍县| 资兴市| 伊金霍洛旗| 海阳市| 瑞金市| 垣曲县| 清丰县| 巴马| 江山市| 龙游县| 昭觉县| 阿合奇县| 高平市| 广汉市| 株洲市| 桓台县| 汝城县| 蕲春县| 夹江县| 长阳| 临沭县| 惠东县| 隆安县| 菏泽市| 青海省| 全椒县| 阳东县| 牡丹江市| 凤山县| 元氏县| 元朗区| 武强县| 唐海县| 车险| 墨江|