在SQL Server中,可以定義子程序存放在數據庫中,這樣子程序稱為存儲過程
SQL Server中支持以下幾種類型的存儲過程
1,系統存儲過程(以“sp_”為前綴,存儲在master里面)
2,本地存儲過程(存儲在用戶自定義的數據庫中)
3,擴展存儲過程(以“xp_”為前綴,存儲在master里面)
4,臨時存儲過程(以#開頭)
注:用戶定義的存儲過程不能以sp/xp開頭
創建存儲過程
create procedure 存儲過程名 as SQL語句
執行存儲過程
Exec(execute) 存儲過程名
修改存儲過程
alter proc 存儲過程名 as SQL語句
刪除存儲過程
drop procedure 存儲過程名
查看存儲過程
sp_helptext 查看存儲過程的定義
sp_help 查看儲存過程有關信息
sp_depends 查看存儲過程所依據的對象
sp_rename 存儲過程原名,存儲過程新名
存儲過程中參數的使用
存儲過程可以帶一個或多個輸入參數
create procedure 存儲過程名
(@ 參數名 數據類型[=默認值])
as SQL語句
執行帶參數的存儲過程
①使用參數名傳遞數值
execute 存儲過程名 [@參數名=參數值]
exec p_a @sname='aaa',@pwd='123'
②按參數位置傳遞參數
execute 存儲過程名 參數值1,參數值2
exec p_a 'aaa','123'
加密存儲過程
create procedure p_mi (參數組) with encryption----加密 as SQL語句
帶輸出參數的存儲過程-----從存儲過程中返回一個或多個值
create procedure 存儲過程名 @參數名 數據類型 output as SQL語句
變量
T-SQL中變量分為局部變量和全局變量
聲明局部變量 declare 以@開頭的變量名 類型(長度)
局部變量賦值 set 局部變量名=值
注:局部變量和賦值必須分開
全局變量 以@@開頭是SQL系統內部事先定義好的變量
運算符:
算數運算符:+,-,*,/,%
賦值:=
比較:>,<.....
邏輯運算符:
all,and,any,some,betwwen,exists,in,like,not,or
流程控制
begin...end:定義語句塊,相當於一對括號
Break:退出最內層的while循環
continue:重新開始while循環
goto:無條件跳轉語句
if...else:滿足條件執行if否則執行else
return:無條件退出
waitfor:為語句的執行設置延遲
while:條件為真時執行語句
return:
declare @i int
set @i=0
while @i<10
begin
set @i=@i+1
if @1%3=0
return -----終止整個批處理
print @i --最終會輸入3
end
使用return返回狀態值
存儲過程中 return於output區別
共同點:都返回值 (return只能返回int類型)
不同點:
output是定義變量是不是可以返回值