--建立儲存過程
create
procedure titles_sum @title varchar(40),@sum money output
asselect @sum = sum(price)
from titles
where title like @title
godeclare @totalcost money
execute titles_sum 'the%', @totalcost output
select @totalcost
gocreate
procedure oakland_authors
asselect au_fname, au_lname, address, city, zip
from authors
where city = 'oakland'
and state = 'ca'
order
by au_lname, au_fname
go--sp_helptext oakland_authors
alter
procedure oakland_authors
asselect au_fname, au_lname, address, city, zip
from authors
where state = 'ca'
order
by au_lname, au_fname
go--sp_helptext oakland_authors
--提交事務後,所有書籍支付的版稅增加 10%。
begin
transaction mytransaction
update roysched
set royalty = royalty * 1.10
commit
transaction mytransaction
--rollback
transaction mytransaction
select royalty from roysched
--select @@trancount
--1.建立試驗實驗表
create
table temptrigger
( id_temp varchar(2) not
null
primary
key,
temp_name varchar(10) null,
temp_age int
null)go
insert temptrigger values('01','張三','10')
insert temptrigger values('02','李四','11')
insert temptrigger values('03','王五','12')
insert temptrigger values('04','趙六','11')
select * from temptrigger go
--2.建立insert , update觸發器
create
trigger temptrigger_modify
on temptrigger
forinsert,update
asbegin
if (select temp_age from inserted) > 15
begin
rollback
transaction
print '年齡不能超過15歲!'
endend
--insert temptrigger values('04','大朋','17')
--insert temptrigger values('05','大朋','17')
--insert temptrigger values('05','大朋','14')
--update temptrigger set temp_age='18'
where id_temp = '01'
--update temptrigger set temp_age='9'
where id_temp = '01'
-3.建立delete 觸發器:
drop
trigger temptrigger_delete
create
trigger temptrigger_delete
on temptrigger
fordelete
asbegin
print @@rowcount
if @@rowcount > 1
begin
rollback
transaction
print '一次刪除記錄不能多於1條'
endend
--delete
from temptrigger
--delete
from temptrigger where id_temp='01'
資料庫觸發器和儲存過程
觸發器 trigger 是由事件來觸發某個操作。這些事件包括insert語句 update語句和delete語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。create trigger 觸發器名 before after 觸發事件 on 表名 for each row 執行語句 每插入...
資料庫觸發器 和 儲存過程
觸發器是指在執行指定表修改操作時強制執行的儲存過程 可以理解為一種特殊的儲存過程 通常用於強制執行不同表之間相互關聯的資料的的完整性或者一致性 因為是在建立表的時候就建立了,所以是不可繞過的,可以用於一些複雜操作場景,用來完成資料完整性。1 ddl 資料定義觸發器 在發生 資料定義語言,如增加表 修...
資料庫儲存過程與觸發器
資料庫儲存過程 儲存過程 stored procedure 是在大型 資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。優點 重複使用。儲存過程可以重複使用,從而可以減...