CREATE TRIGGER trUpdateSummary ON dbo.wfWorksheet
FOR insert,UPDATE
AS
begin
declare @iShtType as tinyint
declare @cShtID as char(16)
select @iShtType=0
select @cShtID=''
declare @vcShipType as varchar(10)
select @vcShipType=''
if Update(mFreight) or Update(mPkgChrg) or Update(mInsChrg)
begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
begin
If @iShtType =1
begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
end
close get_work
DEALLOCATE get_work
end if insert(mFreight) or insert(mPkgChrg) or insert(mInsChrg)
begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
begin
If @iShtType =1
begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
end
close get_work
DEALLOCATE get_work
end
end
没测试过,思路是这样的
FOR insert,UPDATE
AS
begin
declare @iShtType as tinyint
declare @cShtID as char(16)
select @iShtType=0
select @cShtID=''
declare @vcShipType as varchar(10)
select @vcShipType=''
if Update(mFreight) or Update(mPkgChrg) or Update(mInsChrg)
begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
begin
If @iShtType =1
begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
end
close get_work
DEALLOCATE get_work
end if insert(mFreight) or insert(mPkgChrg) or insert(mInsChrg)
begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
begin
If @iShtType =1
begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
end
close get_work
DEALLOCATE get_work
end
end
没测试过,思路是这样的
解决方案 »
- 两段锁的真正意思是什么?
- create view 问题
- 全文索引几个简单的问题,新手都想了解,希望有人回答,谢谢
- 时间统计
- 关于SQL语句查询多个值的问题 急。。。。在线等
- 为什么在SQL帮助手册里看到的部分函数,在查询时,却说无法识别函数
- 一个sql查询数据问题,朋友进来看看,谢谢大家!
- ****数据分组
- 菜鸟问有关ms-sqlserver 7,0
- SQL Server2000中怎么找到某个表占用空间的大小啊?
- 在视图中是否可以使用自定义变量?
- 请问是不是各种数椐库开发工具都使用自己的增强SQL语句如 MSSQLServer的Transact SQL,刚开始接触数据库,是看标准的SQL呢,还是选一种呢?
CREATE TRIGGER trUpdateSummary ON dbo.wfWorksheet
FOR insert,UPDATE
AS
begin
declare @iShtType as tinyint
declare @cShtID as char(16)
select @iShtType=0
select @cShtID=''
declare @vcShipType as varchar(10)
select @vcShipType=''
if Update(mFreight) or Update(mPkgChrg) or Update(mInsChrg)
begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
begin
If @iShtType =1
begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
end
close get_work
DEALLOCATE get_work
end
end