高人请帮看看-这个触发器,应该如何写呢
高人请帮看看---------------这个触发器,应该怎么写呢?
是这样的,有一个Review的表,当这个表里有新增记录,如果status='批准'后,则在应收款表AR
中产生一条记录,记录里要调用另一个主表Project里的相同ProjectNO的信息.
全部有主键的,
为什么我在SQL企业管理器里,就可以正常,但如果是DELPHI里操作时,会报错呢?
错误为:"无法为更新定位行,一些值已经改变"
高人帮分析一下,谢了,
------解决方案--------------------
是这样的,有一个Review的表,当这个表里有新增记录,如果status='批准'后,则在应收款表AR
中产生一条记录,记录里要调用另一个主表Project里的相同ProjectNO的信息.
全部有主键的,
为什么我在SQL企业管理器里,就可以正常,但如果是DELPHI里操作时,会报错呢?
错误为:"无法为更新定位行,一些值已经改变"
高人帮分析一下,谢了,
- SQL code
CREATE TRIGGER [NewArPay] ON [dbo].[Review] AFTER insert AS --SET NOCOUNT ON if @@rowcount = 0 --如果影响的行数为 0,则结束触发器运行,避免占用资源 return declare @name nvarchar(20) select @name = ResultStatus from inserted if @name = '批准' begin Insert into AR(DueDate,ProjectNO,ClientID,ClientName,Type,Cost,Remark) select enddate,ProjectNO,clientid,clientname,'管理费',cost ,'系统自动生成' from Project where status='申请中' and ProjectNO in (Select ProjectNO from Inserted ) end go
------解决方案--------------------
- SQL code
CREATE TRIGGER [NewArPay] ON [dbo].[Review] AFTER insert AS --SET NOCOUNT ON if @@rowcount = 0 --如果影响的行数为 0,则结束触发器运行,避免占用资源 return begin Insert into AR(DueDate,ProjectNO,ClientID,ClientName,Type,Cost,Remark) select enddate,ProjectNO,clientid,clientname,'管理费',cost ,'系统自动生成' from Project where status='申请中' and ProjectNO in (Select ProjectNO from Inserted WHERE ResultStatus='批准') end go