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