我修改为下列正确的,保存和执行触发器都可以
但就是不能“进仓”表中修改任何列的数据。(结存表是仓库库存的结存表)报错误提示:不能修改表的数据提示已更新或删除的行要么不能使该行成为唯一行,要么改变了多个行(860行),
这是为什么/?? 是不是下面两个触发器的代码有什么冲突??要怎么改才可以?? 谢谢!!代码如下:create trigger trd_进仓
on 进仓
for delete
as
begin
update 结存 set 现有库存=现有库存- 进仓.入仓数 from 进仓 where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数 from 进仓
end
create trigger tri_进仓
on 进仓
for insert , update
as
begin
update 结存set 现有库存=现有库存+ 进仓.入仓数from 进仓where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数from 进仓
end
但就是不能“进仓”表中修改任何列的数据。(结存表是仓库库存的结存表)报错误提示:不能修改表的数据提示已更新或删除的行要么不能使该行成为唯一行,要么改变了多个行(860行),
这是为什么/?? 是不是下面两个触发器的代码有什么冲突??要怎么改才可以?? 谢谢!!代码如下:create trigger trd_进仓
on 进仓
for delete
as
begin
update 结存 set 现有库存=现有库存- 进仓.入仓数 from 进仓 where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数 from 进仓
end
create trigger tri_进仓
on 进仓
for insert , update
as
begin
update 结存set 现有库存=现有库存+ 进仓.入仓数from 进仓where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数from 进仓
end
on 进仓
for delete
as
begin
update 结存 set 现有库存=现有库存- 进仓.入仓数 from deleted where 结存.代码=deleted.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数 from deleted
end
create trigger tri_进仓
on 进仓
for insert , update
as
begin
update 结存set 现有库存=现有库存+ inserted.入仓数from inserted where 结存.代码=inserted.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数from inserted
end
on 进仓
for delete
as
begin
update 结存 set 现有库存=现有库存- deleted.入仓数 from deleted where 结存.代码=deleted.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数 from deleted
end
create trigger tri_进仓
on 进仓
for insert , update
as
begin
update 结存set 现有库存=现有库存+ inserted.入仓数from inserted where 结存.代码=inserted.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数from inserted
end