儲存過程
•由使用者使用create procedure語句在當前資料庫中建立
•資料庫所有者擁有使用create procedure語句的預設許可權
語法
create proc[edure]procedure_name
建立儲存過程示例:
無引數
create procedure titles_1389 as
print'此**顯示出版商1389出版的標題'
select * from titles where pub_id ='1389'
有引數
create procedure titles_pub
@v_pubid char(4)
as
select * from titles where pub_id = @v_pubid
execute語句用來執行使用者定義的儲存過程。
語法
exec[ute] procedure_name
示例
有引數
execute titles_pub'0877'
建立觸發器
•觸發器可以通過企業管理器或者查詢分析器來建立。
•語法:
create trigger trigger_name
on table
[with encryption]
for [delete, insert, update]
as sql_statements
insert觸發器示例
alter trigger checkroyalty
on roysched
for insert,update as
if (select max(royalty) from inserted) > 30
begin
print 'royaltytrigger:版權費不能超過30'
print '請將版權費修改為小於30的值'
rollback transaction
end
列級update觸發器示例
create trigger noupdatepayterms
on sales
for update as
if update (payterms)
begin
print '不能修改訂單的付費條款'
rollback transaction
end
觸發器定義中的
if update (
列名 )
子句可用來確定
insert
或update
語句是否影響到表中的乙個特定列。無論何時
,當列被賦值時
,該子句即為
true。
delete觸發器示例
create trigger nodelete9901
on pub_info
for delete as
if (select pub_id from deleted) = 9901
begin
print '不能刪除出版商9901的詳細資訊'
rollback transaction
end
sql 觸發器 儲存過程 觸發器(3 3)
1 what?什麼是觸發器 trigger 前兩篇介紹了儲存過程,儲存過程可以理解為sql語句集。那麼觸發器就是一種特殊的儲存過程,也就是一群特殊的sql語句集。特殊在哪?從上文得知,儲存過程是依賴名字才被呼叫的。不僅是儲存過程,我們常用的方法等,大部分也是先知道名字,才能去使用。就像吃飯採用訂外賣...
SQL儲存過程,事務,觸發器
儲存過程 概念 資料庫中乙個內建的程式段,當執行儲存過程到時候,就會將其內部的 執行一遍。優點 1執行速度 比較 快 2安全性比較高 傳參方式決定 語法 procdurce過程 簡稱proc 解釋 1.執行效率快 sql語句在執行的時候,每次 執行,資料庫都會進行編譯。儲存過程是在建立的時候編譯,一...
觸發器 儲存過程
1 為productsales資料庫中的產品表建立乙個名為update pno的update觸發器,該觸發器的作用是禁止更新產品表中的 productname 欄位的內容。並用update語句修改產品表中第一條記錄為 1 hp1500 印表機 2000 要求顯示 不能修改產品名稱 的警告資訊。cre...