首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

ms SQL2000中,问一个事务与触发器的有关问题.

2012-03-20 
ms SQL2000中,问一个事务与触发器的问题.急....HTML codeproadd.asp的主要代码如下:on error resume nextc

ms SQL2000中,问一个事务与触发器的问题.急....

HTML code
proadd.asp的主要代码如下:on error resume nextconn.BeginTransfor i =1 to 10    pid=request.form("proid"&i)    num=request.form("num"&i)    sql="insert into prolist(pid,account) values('"&pid&"','"&num&"')"    conn.execute(sql)end ifif conn.Errors.Count=0 then    conn.CommitTrans    response.write "成功更新。"else    conn.RollbackTrans    call alert("执行操作时出错,请重新尝试!")end if-------------------------------------------------ms sql2000中,表prolist的字段如下:用于记得每次进仓,出仓的明细记录的:id    pid(即是产品ID号)    account--------------------------------------------------库存表proall的字段如下:pid   allaccount--------------------------------------------------我想要个触发器,实现每次向表prolist插入数据时,将通过prolist的触发器将数量account累加到proall表中。如果程序文件proadd.asp不是用事务的话,触发器大伙都知怎么编写的,就如下:CREATE TRIGGER [prolist_add] ON dbo.prolist FOR INSERT ASbegin    declare @pid numeric(10)    declare @account numeric(10)    select @pid=pid,@account=account from inserted    update proall set allaccount=allaccount + @account where pid=@pidend我想问的是,程序文件proadd.asp用了事务的话,上面这个触发器就只会最后一次insert记录进行更新,而前面的是没有更新表proall的allaccount的,那请问,这个触发器怎么写呢?在线等。。。。。。。


[解决办法]
这个算不算事务嵌套
insert语句其实是开启了一个隐性事务,而触发器和insert都属于这个事务里的吧

热点排行