因为我批量插入一些数据,触发器只有一条记录起作用
所以我改成了UPDATE tb
SET bh = XXXX
from tb a ,inserted i
where a.id=i.id 这样的内连接应该只更新刚才插入的数据,可是我却是全表更新。
如果用游标处理也不现实,速度太慢了
所以我改成了UPDATE tb
SET bh = XXXX
from tb a ,inserted i
where a.id=i.id 这样的内连接应该只更新刚才插入的数据,可是我却是全表更新。
如果用游标处理也不现实,速度太慢了
SET bh = XXXX
from tb a ,inserted i
where a.id=i.id
declare @id int
select @id=id from inserted
UPDATE tb
SET bh = XXXX
where id= @id
UPDATE tb
SET bh = XXXX
from tb a ,inserted i
where a.id=i.id
表示鸭梨!
from tb a ,inserted i
where a.id=i.id
SET bh =
replace(Convert(varchar(10),a.ipdate,111),'/','')+
right((select count(*)+1 from tb t5 where convert(varchar(10),t5.ipdate,120) = convert(varchar(10),ipdate,120))+100000,5)
from tb a ,inserted i
where a.id=i.id 真的更新了全表
我的ID是GUID的,测试表和实际中用的表都是GUID
ALTER TRIGGER [t_insert]
ON [dbo].[tb]
AFTER INSERT
AS
BEGINUPDATE a
SET bh =
replace(Convert(varchar(10),a.ipdate,111),'/','')+
right((select count(*)+1 from tb t5 where convert(varchar(10),t5.ipdate,120) = convert(varchar(10),ipdate,120))+100000,5)
from tb a ,inserted i
where a.id=i.id END