我做了一个触发器,当根据判断条件向另一个表中插入数据时,总提示“无法为更新行定位。一些值可能已在最后一次读取后已更改”错误,但数据还是能够插入到表中,该如何处理,请指教。CREATE TRIGGER [remainupdate] ON [dbo].[tbWZGoodsLocation]
FOR UPDATE
ASdeclare @mygoodsnum int
declare @mylocation int
declare @mygoodsplaceno varchar(20)if update(goodsplaceno)
begin
set @mygoodsnum=(select goodsnum from Inserted)
set @mylocation=(select location from Inserted)
set @mygoodsplaceno=(select goodsplaceno from Inserted) select * from [dbo].[tbWZGoodsRemainNumber] where goodsnum=@mygoodsnum and location=@mylocation and goodsplaceno=@mygoodsplaceno
if @@ROWCOUNT<1
begin
insert into [dbo].[tbWZGoodsRemainNumber] (goodsnum,location,goodsplaceno) values(@mygoodsnum,@mylocation,@mygoodsplaceno)
end
end
FOR UPDATE
ASdeclare @mygoodsnum int
declare @mylocation int
declare @mygoodsplaceno varchar(20)if update(goodsplaceno)
begin
set @mygoodsnum=(select goodsnum from Inserted)
set @mylocation=(select location from Inserted)
set @mygoodsplaceno=(select goodsplaceno from Inserted) select * from [dbo].[tbWZGoodsRemainNumber] where goodsnum=@mygoodsnum and location=@mylocation and goodsplaceno=@mygoodsplaceno
if @@ROWCOUNT<1
begin
insert into [dbo].[tbWZGoodsRemainNumber] (goodsnum,location,goodsplaceno) values(@mygoodsnum,@mylocation,@mygoodsplaceno)
end
end
解决方案 »
- Access violation at address 问题最后是 write address 00000000
- NewWindow2 跨域frame打开新窗口,总是崩溃,求助
- 忙我解释一下这段代码,越详细越好
- ODAC控件操作ORACLE10g中Blob字段。
- 判断当前操作系统
- DLL调用的问题,大家来帮忙!!
- 如何随机从一个数组中取出一个数?
- 请问:使用TIdTCPClient,如何知道服务器向它发送数据了(通过什么事件)?
- 如果一个TTreeView在一个Dock Form上... ...
- 这个读dat文件的过程有什么错。为什么结果却不对呢
- 已知字符串“'['#168#172'?'#168#186'?'']'”对应的汉字是“[泰式]”,请问这种字符串的字符集是什么?
- console模式下能定义函数或过程吗
set @mylocation=(select location from Inserted)应该把Inserted改成Deleted把
SET NOCOUNT OFF 吧,是基础的,
FOR UPDATE
ASdeclare @mygoodsnum int
declare @mylocation int
declare @mygoodsplaceno varchar(20)if update(goodsplaceno)
begin
set @mygoodsnum=(select goodsnum from Inserted)
set @mylocation=(select location from Inserted)
set @mygoodsplaceno=(select goodsplaceno from Inserted) select * from [dbo].[tbWZGoodsRemainNumber] where goodsnum=@mygoodsnum and location=@mylocation and goodsplaceno=@mygoodsplaceno
if @@ROWCOUNT<1
begin
insert into [dbo].[tbWZGoodsRemainNumber] (goodsnum,location,goodsplaceno) values(@mygoodsnum,@mylocation,@mygoodsplaceno)
end
else
rollback /*好象应该加上这句*/
end