我的是ERP软件,我在主资料库上加上如下触发器
create trigger trgr_restorebase on restorebase
for update
as
declare
@prodnr varchar(30),
@descript1 varchar(30)
if update(descript1)
select @descript1=descript1 from inserted
update bomchangeproduct set descript1=@descript1 where bomchangeproduct.masternr=@prodnr
if update(descript1)
select @descript1=descript1 from inserted
update bomproduct set descript1=@descript1 where bomproduct.masternr=@prodnr
begin
rollback transaction
end
在软件页面上点修改就出现如下图示错误,还请大家帮忙分析一下
create trigger trgr_restorebase on restorebase
for update
as
declare
@prodnr varchar(30),
@descript1 varchar(30)
if update(descript1)
select @descript1=descript1 from inserted
update bomchangeproduct set descript1=@descript1 where bomchangeproduct.masternr=@prodnr
if update(descript1)
select @descript1=descript1 from inserted
update bomproduct set descript1=@descript1 where bomproduct.masternr=@prodnr
begin
rollback transaction
end
在软件页面上点修改就出现如下图示错误,还请大家帮忙分析一下
if update(descript1)
select @descript1=descript1 from inserted
update bomchangeproduct set descript1=@descript1 where bomchangeproduct.masternr=@prodnr
if update(descript1)
select @descript1=descript1 from inserted
update bomproduct set descript1=@descript1 where bomproduct.masternr=@prodnr
begin
rollback transaction --回滚事务?为何
---可换成如下:if update(descript1)
select @descript1=descript1 from inserted
BEGIN TRAN
--更新1,还需注意列字段是否没写错
update bomchangeproduct set descript1=@descript1
where bomchangeproduct.masternr=@prodnr
--更新2
update bomproduct set descript1=@descript1
where bomproduct.masternr=@prodnr
COMMIT TRAN
begin
我的是ERP软件,我在主资料库上加上如下触发器
create trigger trgr_restorebase on restorebase
for update
as
declare
@prodnr varchar(30),
@descript1 varchar(30)
if update(descript1)
begin
select @descript1=descript1 from inserted
BEGIN TRAN
--更新1,还需注意列字段是否没写错
update bomchangeproduct set descript1=@descript1
where bomchangeproduct.masternr=@prodnr
--更新2
update bomproduct set descript1=@descript1
where bomproduct.masternr=@prodnr
COMMIT TRAN
end
else
rollback
create trigger trgr_restorebase on restorebase
for update
as
declare
@prodnr varchar(30),
@descript1 varchar(30)
if update(descript1)
begin
--赋值
SET @prodnr='你的值来源'
select @descript1=descript1 from inserted
BEGIN TRAN
--更新1,还需注意列字段是否没写错
update bomchangeproduct set descript1=@descript1
where bomchangeproduct.masternr=@prodnr
--更新2
update bomproduct set descript1=@descript1
where bomproduct.masternr=@prodnr
COMMIT TRAN
end
else
rollback
--赋值
SET @prodnr='你的值来源'
varchar(30),
不明白! 这里面这个数值30也是我没有弄明白的原因,我是按照书上的样式写的,那个也没找到资料!还请帮忙解释一下,谢谢!
for update
as
declare
@prodnr varchar(30),
@descript1 varchar(30)
declare @restorebase int
SET @prodnr=(select count(*) from restorebase)
select @restorebase
if update(descript1)
begin
select @descript1=descript1 from inserted
BEGIN TRAN
update bomchangeproduct set descript1=@descript1
where bomchangeproduct.masternr=@prodnr
update bomproduct set descript1=@descript1
where bomproduct.masternr=@prodnr
COMMIT TRAN
end
else
rollback 这样写了不会出错,但是不会更新
where bomchangeproduct.masternr=@prodnr
update bomproduct set descript1=@descript1
where bomproduct.masternr=@prodnr