触发器的新手......所有文档都不会打扰初学者的东西。
我只想更新已经/已经更新的行。我下面的触发器会更新整个表格。下面的触发器只测试两列的变化。
如何将此更新触发器限制为仅更新更新的行而不是整个表?
ALTER TRIGGER [dbo].[geog_update] ON [dbo].[Site]
FOR UPDATE
AS
SET NOCOUNT ON
IF (UPDATE(Latitude) OR UPDATE(Longitude))
BEGIN
UPDATE Site
SET geog = geography::Point([Latitude], [Longitude], 4326)
WHERE Latitude is not null and Longitude is not null
END
我可以通过仅使用 FOR UPDATE、INSERT 对插入的行使用相同的触发器吗?可能不是因为 IF 检查列上的 UPDATE(),除非 INSERT 暗示 UPDATE。