【資料庫視訊】第九章 儲存過程
阿新 • • 發佈:2018-11-28
一、儲存過程概述
是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中。儲存過程可包含程式流、邏輯以及對資料庫的查詢。他們可以接收引數、輸出引數、返回單個或者多個結果集以及返回值。
種類:
-
使用者自定義儲存過程
-
系統儲存過程
-
擴充套件儲存過程
二、建立儲存過程
語法格式:
-
CREATE PROC[EDURE] procedure_name[;number]
-
[ {@parameter data_type}
-
[VARYING] [=default] [OUTPUT] {,…n]
-
[WITH
-
{RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION}]
-
AS
-
Sql_statement[…n]
三、使用輸出函式
declare @sorce1 int
exec P_sorce @name='李軍',@[email protected] output
print @sorce1
四、修改儲存示例
語法格式:
-
ALTER PROCEDURE procedure_name[;number]
-
[ {@parameter data_type}
-
[VARYING] [=default] [OUTPUT] {,…n]
-
[WITH
-
{RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION}]
-
AS
-
Sql_statement[…n]
修改儲存過程的操作:可程式設計性——儲存過程——右擊具體的儲存過程——修改
獲取儲存過程的建立語句的操作:右擊具體的儲存過程——編寫儲存過程指令碼為——CREATE到——新查詢編輯器視窗
獲取刪除儲存過程的語句的操作:右擊具體的儲存過程——編寫儲存過程指令碼為——DROP到——新查詢編輯器視窗
五、刪除儲存過程
DROP PROCEDURE{procefure}[,…n]
方式:①右擊刪除,單擊確定按鈕
②DROP命令
③編寫儲存過程指令碼為DROP
六、設計儲存過程的規則
規則:
-
可以引用在同一儲存過程中建立的物件,只要引用時已經建立了該物件即可;
-
可以在儲存過程內引用臨時表。如果在儲存過程內建立本地臨時表,則臨時表僅為該儲存過程而存在;退出該儲存過程後,臨時表將消失。
-
如果執行的儲存過程將呼叫另一個儲存過程,則被呼叫的儲存過程可以訪問由第一個儲存過程建立的所有物件,包括臨時表在內。
-
如果執行對遠端例項進行更改的遠端儲存過程,則不能回滾這些更改。遠端儲存過程不參與事務處理。
-
儲存過程中的引數的最大數目為2100
-
儲存過程中的區域性變數的最大數目僅受可用記憶體的限制
-
根據可用記憶體的不同,儲存過程最大可達128MB
不能包括的T-SQL語句:
CREATE AGGREGATE |
CREATE RULE |
CREATE DEFAULT |
CREATE SCHEMA |
CREATE或者ALTER FUNCTION |
CREATE或者ALTER TRIGGER |
SET PARSEONLY |
SET SHOWPLAN_ALL |
SET SHOWPLAN_TEXT |
SET SHOWPLAN_XML |
USE Database_name |
|