触发器 多条数据更新时 如何处理
现有触发器 插入 更新 A表 如果B表 有相关数据则更新,负责就插入数据
这个触发器是没问题的,可以正常运行。但如果我要批量插入 或者 批量更新时候 就出问题了。
有人说用游标可以做这个 但 做个简单测试
--
-- Declare @ID int
--
--
-- Declare myCur CURSOR FOR
-- select ID from deleted
-- open myCur
--
-- fetch next from myCur into @ID
--
-- while @@fetch_status=0
BEGIN
insert into T2(ID,H,iID)
select i.ID,i.H,i.ID
from inserted i
--fetch next from myCur into @ID
End
-- Close myCur
-- DEALLOCATE myCur
--Insert statements for trigger here
这个是 T1 数据变化 向T2 插入数据,用上游标 反而执行不了。 不知道改如何解决,现在不用游标却可以。
但我说的那个和这个 相似 却不能
------解决方案--------------------这个Trigger逻辑上是有问题的
Declare @GoodsID nvarchar(100) Declare @ReserID nvarchar(100) set @ReserID=(select D.resellerId From inserted D) Set @GoodsID=(Select count(*) From [Goods] where ID in (select D.GoodsID From inserted D) and resellerId=@ReserID)
如果影响的条数为多条记录,那么可能就无法返回正确的结果了。