请问:SQL中,有两个表A,B,如何设立一个触发器,当表A中的数量列插入新值,表B中统计数值自动更新。
列如,表A:书名,类型,数量;表B:类型,数量;当表A中插入新的书时,表B自动更新,如何建立触发器实现这个功能。仅仅是个触发器,后面的统计我已经解决了。统计代码是:del...
列如,表A:书名,类型,数量;表B:类型,数量;当表A中插入新的书时,表B自动更新,如何建立触发器实现这个功能。仅仅是个触发器,后面的统计我已经解决了。统计代码是:delete B
insert into test2(种类,数量)
select 种类,(sum)as 数量 from A
group by 种类 展开
insert into test2(种类,数量)
select 种类,(sum)as 数量 from A
group by 种类 展开
2个回答
展开全部
CREATE TRIGGER 表A_ps ON 表A
FOR INSERT
AS
DECLARE @ErrNo int, @ErrMsg varchar(255), @总类 char(10), @数量 int
SELECT @总类 = 总类, @数量 = 数量 from inserted
IF @总类 IS NOT NULL
BEGIN
UPDATE 表B
SET 数量=数量+@数量
WHERE 总类=@总类
end
IF @总类 IS NULL
BEGIN
insert 表B
select @总类,@数量
end
else
begin
select @errno = 300012, @errmsg = '资料录入错误 !'
goto error
end
RETURN
error:
raiserror @errno @errmsg
FOR INSERT
AS
DECLARE @ErrNo int, @ErrMsg varchar(255), @总类 char(10), @数量 int
SELECT @总类 = 总类, @数量 = 数量 from inserted
IF @总类 IS NOT NULL
BEGIN
UPDATE 表B
SET 数量=数量+@数量
WHERE 总类=@总类
end
IF @总类 IS NULL
BEGIN
insert 表B
select @总类,@数量
end
else
begin
select @errno = 300012, @errmsg = '资料录入错误 !'
goto error
end
RETURN
error:
raiserror @errno @errmsg
2012-11-25
展开全部
不明觉厉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询