触发器的使用
2012-04-28 15:10
309 查看
ALTER TRIGGER [dbo].[IsFull] ON [dbo].[BorrowBid]
FOR UPDATE
AS
declare @AlsoNeedAmount decimal(18,2)
declare @GurantFlag int
declare @AlsoNeedGurantAmount decimal(18,2)
select @AlsoNeedAmount=AlsoNeedAmount,@GurantFlag=GurantFlag,@AlsoNeedGurantAmount=AlsoNeedGurantAmount from BorrowBid where BorrowBidID=(select BorrowBidID from inserted)
if(@GurantFlag=1)--担保标
begin
if(@AlsoNeedAmount=0 and @AlsoNeedGurantAmount=0)
update BorrowBid set FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
end
else--非担保标
begin
if(@AlsoNeedAmount=0)
update BorrowBid set FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
end
--inserted,deleted是在触发器中使用的两个临时表,
--当执行insert操作时,在inserted中存储着当前插入的记录,
在执行delete操作时,在deleted中存储着当前删除的记录,
当执行update时,在inserted中存储着修改后的记录,在deleted中存储着修改前的记录。
FOR UPDATE
AS
declare @AlsoNeedAmount decimal(18,2)
declare @GurantFlag int
declare @AlsoNeedGurantAmount decimal(18,2)
select @AlsoNeedAmount=AlsoNeedAmount,@GurantFlag=GurantFlag,@AlsoNeedGurantAmount=AlsoNeedGurantAmount from BorrowBid where BorrowBidID=(select BorrowBidID from inserted)
if(@GurantFlag=1)--担保标
begin
if(@AlsoNeedAmount=0 and @AlsoNeedGurantAmount=0)
update BorrowBid set FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
end
else--非担保标
begin
if(@AlsoNeedAmount=0)
update BorrowBid set FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
end
--inserted,deleted是在触发器中使用的两个临时表,
--当执行insert操作时,在inserted中存储着当前插入的记录,
在执行delete操作时,在deleted中存储着当前删除的记录,
当执行update时,在inserted中存储着修改后的记录,在deleted中存储着修改前的记录。
相关文章推荐
- SQL Server 2000中的触发器使用
- MySQL触发器使用详解
- Python使用time模块实现指定时间触发器示例
- 尽量不要使用触发器
- 触发器使用教程和命名规范(转)
- 使用SET NOCOUNT ON得到更佳的触发器性能
- 【转】oracle中触发器中:new和:old 的使用方法
- MySQL触发器的使用
- sql server 函数与触发器的使用
- 工作中使用了一些触发器
- SQL2000 中的触发器的使用
- Oracle 触发器的使用小结
- Sql SERVER 触发器的使用
- SQL Server中使用触发器的优点
- SQL 2000中的触发器使用
- mysql-触发器,存储过程和函数,定时器使用等内容分享
- sqlite触发器的说明和使用
- SQL 2000中的触发器使用
- MSSQL之十七 触发器使用项目案例
- mysql的 深度使用 - 游标 , 定时器, 触发器 的使用 ?