一:儲存過程的定義:
在資料庫伺服器上(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注:如果執行儲存過程的語句是批處理中的第乙個語句,則可以不指定execute關鍵字[ute
] 儲存過程名 [
引數值]
eg:sp_databases myschool
go2.常用的擴充套件儲存過程
語法:
exec xp_cmdshell dos 命令[注:exec表示呼叫儲存過程,no_output為可選引數,設定執行dos命令後是否輸出返回資訊no_output
]
3.使用者自定義的儲存過程
建立不帶引數的儲存過程:
① 建立儲存過程
語法:
create② 刪除儲存過程procedure
儲存過程名
[ [=預設值][
output],
........,
[=預設值][
output]]
assql語句
語法:
drop注:引數置於as前,並且變數前不需要加declare關鍵字procedure 儲存過程名
as後的變數需要declare關鍵字
eg:建立乙個可以查詢所有學生資訊的儲存過程
create建立帶輸入引數的儲存過程:procedure
asselect
*from student
①:建立帶引數的儲存過程
如果儲存過程的引數後面有"output"關鍵字,則表示此引數為輸出引數;否則視為輸入引數,輸入引數還可以設定為預設值。
②:執行帶引數的儲存過程
語法:
execeg:從result,student表中查詢成績大於90分的學生的 姓名和成績:[返回變數=
] 儲存過程名 [
@引數1=
]引數值1 [
output]|
[default],
.......
[@引數1=
]引數值n [
output]|
[default
]
四:帶output引數的儲存過程:
五:處理錯誤資訊
raiserror語句:
語法:
raiserror ( [分析:利用raiserror語句生成使用者定義的錯誤資訊並返回到應用程式。with option[,....n
]])
六:補充
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 本章所講解的方法都是指可以使用主方法呼叫的方法,所...