SQL触发器。当我一个数据库中的一个表更新一个信息,另个表插入一个条信息?怎么写
3个回答
展开全部
假设有两张表,一张为操作记录表tbA(MyID,MyX,MyY),一张为账户余额表tbB(MyID,MySum)
MyID:int类型
MyX:money类型
MyY:int类型(-1取钱,1存钱)
MySum:money类型
我想在我记录存入多少钱的同时,在余额表里的MySum里的数据也更着改变,而我们也不需要对余额有任何操作
示例代码如下:
create trigger MyMoneyTrg
on tbA
for insert,update
as
declare @ID int,
@X money,
@Y int
begin
select @ID=MyID,@X=MyX,@Y=MyY from inserted
--这里从inserted表里取到了更新的必要数据,inserted表是更新的数据暂时存放的表,触发器执行结束这个表就消失了
update tbB set MySum=(@X*@Y+Mysum) where MyID=@ID
end
这个范例能在触发器的作用\方法\语法等方面描述触发器,希望这位同学能举一反三
MyID:int类型
MyX:money类型
MyY:int类型(-1取钱,1存钱)
MySum:money类型
我想在我记录存入多少钱的同时,在余额表里的MySum里的数据也更着改变,而我们也不需要对余额有任何操作
示例代码如下:
create trigger MyMoneyTrg
on tbA
for insert,update
as
declare @ID int,
@X money,
@Y int
begin
select @ID=MyID,@X=MyX,@Y=MyY from inserted
--这里从inserted表里取到了更新的必要数据,inserted表是更新的数据暂时存放的表,触发器执行结束这个表就消失了
update tbB set MySum=(@X*@Y+Mysum) where MyID=@ID
end
这个范例能在触发器的作用\方法\语法等方面描述触发器,希望这位同学能举一反三
展开全部
格式如下
CREATE TRIGGER 触发器名称
ON 表1
FOR Update AS
BEGIN
INSERT 表2(……) VALUES (……)
END
CREATE TRIGGER 触发器名称
ON 表1
FOR Update AS
BEGIN
INSERT 表2(……) VALUES (……)
END
追问
这个不是更新吗? 我是说插入的嘛
追答
这个写法是表1更新的时候,就往表2插入新记录啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create trigger 触发器名
on 表1
after update
AS
insert into 表2 values(.....)
on 表1
after update
AS
insert into 表2 values(.....)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询