1. 程式人生 > >【資料庫視訊】第九章 儲存過程

【資料庫視訊】第九章 儲存過程

一、儲存過程概述

是一組為了完成特定功能的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

 

七、臨時儲存過程

#區域性 

##全域性

八、檢視儲存過程

方式:①右擊具體的儲存過程——編寫儲存過程指令碼為——CREATE到——新查詢編輯器視窗

           ②使用系統的儲存過程  例:exec sp_helptext get_student