轻松掌握设计 Sql Server触发器的原理
2007-07-31 09:47:15 来源:WEB开发网核心提示: (2)sp_helptext 触发器名查看文本信息(3)设置某一触发器的无效和重新有效无效:use northwindalter table 表名disable trigger 触发器名重新有效:use northwindalter table 表名enable trigger 触发器名(
(2)sp_helptext 触发器名
查看文本信息
(3)设置某一触发器的无效和重新有效
无效:
use northwind
alter table 表名
disable trigger 触发器名
重新有效:
use northwind
alter table 表名
enable trigger 触发器名
(4)删除触发器
use northwind
drop trigger 触发器名,触发器名
作业3:
在order_test表上建立一个插入触发器,在添加一个订单时,减少cust_test表的相应货物的记录的库存量。
作业4:
在order_test表上建立一个插入触发器,规定订单日期(Odate)不能手工修改。
作业5:
要求订购的物品一定要在仓库中有的,并且数量足够。
例6:
在order_test表上建立一个插入触发器,同时插入多行数据时,要求订购的物品一定要在仓库中有的。
答案3:
use northwind
go
create trigger cust_orders_ins3
on order_test
after insert
as
update cust_test set cstorage=cstorage-inserted.orders
from cust_test,inserted
where cust_test.customerid=inserted.customerid
答案4:
use northwind
go
create trigger orderdateupdate
on order_test
after update
as
if update (odate)
begin
raiserror('Error',10,1)
rollback transaction
end
答案5:
use northwind
go
create trigger order_insert5
on order_test
after insert
as
begin
if(select count(*)
from cust_test,inserted
where cust_test.customerid=inserted.customerid)=0
begin
print 'No entry in goods for your order'
rollback transaction
end
if(select cust_test.cstorage from cust_test,inserted
where cust_test.customerid=inserted.customerid)<
(select inserted.orders from cust_test,inserted
where cust_test.customerid=inserted.customerid)
begin
print 'No enough entry in goods for your order'
rollback transaction
end
end
更多精彩
赞助商链接