数据库系列之T-SQL(存储过程)
什么是存儲(chǔ)過程
存儲(chǔ)過程是保存在數(shù)據(jù)庫的函數(shù),可以被應(yīng)用程序或其它存儲(chǔ)過程調(diào)用。
存儲(chǔ)過程有什么用
用于實(shí)現(xiàn)業(yè)務(wù)邏輯(特別是需要事務(wù)的業(yè)務(wù))。
1 優(yōu)點(diǎn)
減少網(wǎng)絡(luò)通信量
執(zhí)行速度更快
更強(qiáng)的適應(yīng)性(有時(shí)候發(fā)布系統(tǒng)無需更新客戶端)
分布式工作
減少客戶端的負(fù)荷
2 缺點(diǎn)
增加服務(wù)器的負(fù)荷
?
常用的系統(tǒng)存儲(chǔ)過程
系統(tǒng)存儲(chǔ)過程??? 說明
sp_help??? 用于查看對(duì)象信息
sp_helpdb??? 用于查詢數(shù)據(jù)庫的信息
sp_helpconstraint??? 查看某個(gè)表的約束
sp_helpindex??? 查看某個(gè)表的索引
sp_databases??? 用于顯示所有數(shù)據(jù)庫的信息,如數(shù)據(jù)庫名和數(shù)據(jù)大小。
sp_renamedb??? 更改數(shù)據(jù)庫的名稱
Sp_rename??? 用于在當(dāng)前數(shù)據(jù)庫更改用戶創(chuàng)建的對(duì)象名稱,如數(shù)據(jù)表、字段、索引等
sp_tables??? 返回當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)表和視圖
sp_columns??? 返回某個(gè)數(shù)據(jù)表或視圖的列信息
sp_password??? 添加或修改登錄帳戶的密碼
調(diào)用系統(tǒng)存儲(chǔ)過程
exec sp_databases? --列出當(dāng)前系統(tǒng)中的所有數(shù)據(jù)庫
use booksmanager
go
exec sp_tables? --列出數(shù)據(jù)庫booksmanager中所有數(shù)據(jù)表和視圖
exec sp_columns books --列出圖書表的列信息
exec sp_help books --查看圖書表的所有信息
exec sp_helpconstraint books --查看圖書表的約束
exec sp_helpindex books --查看圖書表的索引
擴(kuò)展存儲(chǔ)過程
擴(kuò)展存儲(chǔ)過程(Extended? stored? procedured)是對(duì)動(dòng)態(tài)鏈接庫(DLL)函數(shù)的調(diào)用。
擴(kuò)展存儲(chǔ)過程通常是以“XP_”為前綴。
用戶自定義存儲(chǔ)過程
1 不帶參數(shù)的存儲(chǔ)過程
(1)語法
CREATE? PROCEDURE? 存儲(chǔ)過程名
AS
? ………
? ………
? ………
建議:自定義存儲(chǔ)過程的名稱最好以USP_開頭
(2)調(diào)用帶輸入?yún)?shù)的存儲(chǔ)過程
EXEC? 存儲(chǔ)過程名
2 帶參數(shù)的存儲(chǔ)過程
(1)語法
CREATE? PROCEDURE? 存儲(chǔ)過程名
??? @參數(shù)1? 數(shù)據(jù)類型 [=默認(rèn)值],
???? ……
??? @參數(shù)n? 數(shù)據(jù)類型 [=默認(rèn)值]
AS
? ………
? ………
? ………
(2)調(diào)用帶輸入?yún)?shù)的存儲(chǔ)過程
方式一:
exec usp_score_byparam 'SQL Server基礎(chǔ)編程',70
方式二:
exec usp_score_byparam @coursename='SQL Server基礎(chǔ)編程' ,@pass=70
3 帶輸出參數(shù)的存儲(chǔ)過程
(1)語法
CREATE? PROCEDURE? 存儲(chǔ)過程名
??? @參數(shù)1? 數(shù)據(jù)類型 [=默認(rèn)值],
???? ……
??? @參數(shù)n? 數(shù)據(jù)類型 OUTPUT
AS
? ………
? ………
? ………
(2)調(diào)用帶輸出參數(shù)的存儲(chǔ)過程
declare @result? int
exec usp_ADD 20,30,@result output
print '運(yùn)算結(jié)果:'+str(@result,5)
轉(zhuǎn)載于:https://www.cnblogs.com/cmhunter/p/4299875.html
總結(jié)
以上是生活随笔為你收集整理的数据库系列之T-SQL(存储过程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 1637 Sightseeing
- 下一篇: Mysql分组合并函数并进行数据列处理