WEB开发网
开发学院数据库MSSQL Server 轻松掌握设计 Sql Server触发器的原理 阅读

轻松掌握设计 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

上一页  1 2 3 4 5  下一页

Tags:轻松 掌握 设计

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接