UPDATE与SELECT不一致的有关问题

UPDATE与SELECT不一致的问题
本人小白,请教一个问题:更新语句:update ICBOM set FUseStatus=1072 from ICBOM inner join t_ICItem on t_ICItem.FItemID=ICBOM.FItemID and t_ICItem.FNumber='HC.A.519700000011R'
查询语句:select ICBOM.FUseStatus,t_ICItem.FNumber from ICBOM,t_ICItem where t_ICItem.FItemID=ICBOM.FItemID andUPDATE与SELECT不一致的有关问题UPDATE与SELECT不一致的有关问题 t_ICItem.FNumber='HC.A.519700000011R'

其中:t_ICItem是一个视图,ICBOM是一张表-------这是金蝶K3数据库中的表和视图。

当我用查询语句时,SQL系统返回一条记录;当我用更新语句时,系统返回两个“1行受影响”。我想知道我是更新了一条记录还是两条记录,或者我更新了那些记录。请问各高手能否指教一下?
------解决思路----------------------
应该是更新一条,因为如果是两条的话,受影响就是两条了,而不是两次受影响一条了,因此,出现这个问题的原因是,你的这个表可能有触发器之类的
------解决思路----------------------
从个人经验来说,触发器的可能性比较大。纯update,不管影响多少行,只会告诉你“xx行受影响”,不会这样分开来显式
------解决思路----------------------
这个要用触发器来存到别的表
------解决思路----------------------
这个是正常的,有可能有触发器。
------解决思路----------------------
引用:
那么请问有没有什么方法可以知道UPDATE具体修改的那些记录呢?
ALTER TRIGGER [dbo].[Tr_Icbom_UpdateStatus]
ON [dbo].[ICBOM]
FOR  UPDATE
AS
DECLARE @Status  INT
DECLARE @InterID  INT
If UPDATE(FStatus)
BEGIN
SELECT @InterID = FInterID FROM DELETED
SELECT @Status = FStatus FROM INSERTED
IF @Status = 1 
--当你更新FStatus为1的时候
BEGIN
--触发器会更新同一条记录的字段FBeenChecked为1
UPDATE ICBOM SET FBeenChecked = 1 WHERE FInterId = @InterID
END
END 

------解决思路----------------------
以前也弄过金蝶,不过主要是分销系统,BOM没涉及,不太清楚
不过,貌似对你的功能不影响啊
------解决思路----------------------
应该是after 或者for类型的触发器,不仅触发器本身会被执行,操作语句也会被执行,当触发器中存在更新语句的时候,显示一行记录受影响,而操作语句执行的时候,又更新了一条记录,所以也显示一行记录受影响,查看下对应表的触发器就知道了
------解决思路----------------------
想仅更新数据而不执行触发器的话,可以在更新的脚本前面加上
alter table tablename disable trigger all
更新完了再用一句
alter table tablename enable trigger all