首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一个容易的触发器,来者给分

2011-12-20 
一个简单的触发器,来者给分有谁会写触发器..一个简单的触发器表 A,有字段 id,sid,quan表 B,有字段 sid,qua

一个简单的触发器,来者给分
有谁会写触发器..一个简单的触发器

表 A,有字段 id,sid,quan
表 B,有字段 sid,quans

当更新A表的时候..例如 quan-1, update A set quan=quan-1 where sid=1
那么表B,quans-1,

如果 quan-2 那么表B quans-2 

拜托各位大哥帮忙

[解决办法]
友情up
[解决办法]
如果需要参数,最好写在同一个存储过程或者事务里面一起执行,没必要写在触发器里面!
[解决办法]
友情up
[解决办法]

SQL code
CREATE TRIGGER tr_a_updateON [表A] FOR UPDATEASBEGINDECLARE @i INT,@sid INTSELECT @i=[quan],@sid=[sid] FROM DELETEDSELECT @i=@i-[quan] FROM INSERTEDUPDATE [表B] SET [quans]=[quan]-@i WHERE [sid]=@sidEND
[解决办法]
表 A,有字段 id,sid,quan 
表 B,有字段 sid,quans 

当更新A表的时候..例如 quan-1, update A set quan=quan-1 where sid=1 
那么表B,quans-1, 

如果 quan-2 那么表B quans-2

----------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER TRIGGER [UpdateTRIGGER]
ON [dbo].[PoliceDepartment] 
FOR UPDATE
AS 
 
BEGIN
UPDATE 表 B SET (表 B).quans =quan
FROM inserted a WHERE a.sid=表 B.sID
SET NOCOUNT ON;

-- Insert statements for trigger here

END
[解决办法]
set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
go 

create TRIGGER [UpdateTRIGGER] 
ON [dbo].[PoliceDepartment]
FOR UPDATE 
AS
  
BEGIN 
UPDATE 表 B SET (表 B).quans =quan 
FROM inserted a WHERE a.sid=表 B.sID 
SET NOCOUNT ON; 

-- Insert statements for trigger here 

END
[解决办法]
同意楼上
从DELETED取出原始值
从INSERTED取出现有值
两者之差就是新增的值
然后Update 表B

热点排行