存儲過程

存儲過程(procedure)類似於C語言中的函數,用來執行管理任務或應用複雜的業

務規則,存儲過程可以帶參數,也可以返回結果。
系統存儲過程的名稱都以“sp_”開頭或”xp_”開頭,用戶也可以在自己的數據庫

中創建的存儲過程。
系統存儲過程 說明
sp_databases 列出服務器上的所有數據庫。
sp_helpdb 報告有關指定數據庫或所有數據庫的信息
sp_renamedb 更改數據庫的名稱
sp_tables 返回當前環境下可查詢的對象的列表
sp_columns 回某個表列的信息
sp_help         查看某個表的所有信息
sp_helpconstraint 查看某個表的約束
sp_helpindex 查看某個表的索引
sp_stored_procedures 列出當前環境中的所有存儲過程。
sp_password 添加或修改登錄帳戶的密碼。
sp_helptext 顯示默認值、未加密的存儲過程、用戶定義的存儲過程、觸發器

或視圖的實際文本。
流程控制語句:
IF……ELSE語句
declare @pic float
select @pic=sum(price) from  titles
if @pic>500
begin
print 'more 500'
end
else
begin
print 'less 500'
end
CASE語句
select top 10 orderid,orderid %10 as 'Last Digit',Position=
Case orderid %10
 when 1 then 'First'
 when 2 then 'Second'
 when 3 then 'Third'
 when 4 then 'Fourth'
Else 'Something Else'
end
from orders
WHILE語句
declare @i int
set @i=1
while @i<10
begin
print @i
set @i=@i+1
end
WAITFOR語句
Waitfor
Delay  ‘01:00’  --等待一小時後執行
Print ‘SQL’
TRY/CATCH語句
BEGIN TRY
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
在 END TRY 和 BEGIN CATCH 語句之間放置任何其他語句都將生成語法錯誤。
創建有參存儲過程
create procedure MyPRO
@id varchar(11),
@contract bit,
@phone char(12) output
as
select @phone=phone from authors where au_id=@id and [contract]

=@contract

--調用存儲過程
declare @phone char(12)
exec mypro '267-41-2394',true,@phone output
print @phone
--修改存儲過程
alter procedure mypro
as
select au_lname,au_fname from authors

--刪除存儲過程
drop proc Mypro

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章