07章 儲存過程

2022-07-05 00:27:09 字數 2504 閱讀 5717

一:儲存過程的定義:

在資料庫伺服器上(db server)儲存的預先編譯好的一堆sql語句

是sql語句和控制語句的預編譯集合,儲存在資料庫裡,可由應用程式呼叫執行,而且允許使用者宣告變數、邏輯控制語句及其他強大的編譯功能。它可以接收引數、輸出引數、返回單個或多個結果集及返回值。

為什麼需要儲存過程???

增加資料庫的安全性

二:儲存過程的優點:

①:執行速度更快

②:允許模組化程式設計

③:提高系統安全性

④:減少網路流通量

三:儲存過程的分類:

1.系統儲存過程:

以「sp_」開頭,並存放在resource資料庫中

常用的系統儲存過程:

系統儲存過程

說明sp_databases

列出伺服器上的所有資料庫資訊,包括資料庫名稱和資料庫大小

sp_helpdb

報告有關指定資料庫或所有資料庫資訊

sp_renamedb

更改資料庫名稱

sp_tables

返回當前環境下可查詢的表或檢視資訊

sp_columns

返回某個表或檢視的列資訊,包括列的資料型別和長度等

sp_help

檢視某個資料庫物件的資訊

sp_helpconstraint

檢視某個表的約束

sp_helpindex

檢視某個表的索引

sp_stored_procedures

顯示儲存過程的列表

sp_password

新增或修改登入賬戶的密碼

sp_helptext

顯示預設值,未加密的儲存過程,使用者自定義的儲存過程。觸發器或檢視的實際文字

語法:

exec

[ute

] 儲存過程名 [

引數值]

注:如果執行儲存過程的語句是批處理中的第乙個語句,則可以不指定execute關鍵字

eg:sp_databases myschool

go2.常用的擴充套件儲存過程

語法:

exec xp_cmdshell dos 命令[

no_output

]

注:exec表示呼叫儲存過程,no_output為可選引數,設定執行dos命令後是否輸出返回資訊

3.使用者自定義的儲存過程

建立不帶引數的儲存過程:

① 建立儲存過程

語法:

create

procedure

儲存過程名

[ [=預設值][

output],

........,

[=預設值][

output]]

assql語句

② 刪除儲存過程

語法:

drop

procedure 儲存過程名

注:引數置於as前,並且變數前不需要加declare關鍵字

as後的變數需要declare關鍵字

eg:建立乙個可以查詢所有學生資訊的儲存過程

create

procedure

asselect

*from student

建立帶輸入引數的儲存過程:

①:建立帶引數的儲存過程

如果儲存過程的引數後面有"output"關鍵字,則表示此引數為輸出引數;否則視為輸入引數,輸入引數還可以設定為預設值。

②:執行帶引數的儲存過程

語法:

exec

[返回變數=

] 儲存過程名 [

@引數1=

]引數值1 [

output]|

[default],

.......

[@引數1=

]引數值n [

output]|

[default

]

eg:從result,student表中查詢成績大於90分的學生的  姓名和成績:

四:帶output引數的儲存過程:

五:處理錯誤資訊

raiserror語句:

語法:

raiserror ( [

with option[,....n

]])

分析:利用raiserror語句生成使用者定義的錯誤資訊並返回到應用程式。

六:補充

truncate 與 delete 三點區別:

1.   truncate不能加where,而delete可以

2.   truncate刪除速度快,不記錄日誌。不能恢復資料

而delete刪除速度慢,記錄日誌,可以恢復資料

3.   truncate 截斷表。id從1開始編號

delete 不會從1開始編號

S2 day 07儲存過程

建立使用者自定義 的儲存過程 之建立帶輸入引數的儲存引數 use myschool 檢測是否存在usp studentinfo儲存過程 if exists select from sysobjects where name usp studentinfo drop procedure usp stu...

mysql 第12章 儲存過程

2015 10 24 目錄 例1 管理員工的儲存過程定義 delimiter create procedure employee add p name char 64 p email char 64 p password char 64 modifies sql data begin declare...

第07章 方法

方法 就是一段可重複呼叫的 段 注意 有過其他語言學習經歷的讀者,在其他語言中會將方法稱為函式,不管函式也好,方法也好,只是名字的不同,但是其作用都是一樣的。方法定義格式 public static 返回值型別 方法名稱 型別 引數1,型別 引數2 本章所講解的方法都是指可以使用主方法呼叫的方法,所...