我正在编写一个插入后触发器,试图在这里找到解决此问题的方法:
https://stackoverflow.com/questions/19355644/dead-ends-all-around-trying-to-update-geography-column
我不确定的是,如何编写触发器以考虑此处解释的多个记录作为您需要编码的潜力。
到目前为止,我有这个,但它仅适用于单个记录,因此如果表在批处理中插入了 100 条记录,则不会更新 99。这是我到目前为止的理解,可能不正确。
create trigger tri_inserts on [dbo].[Address]
after insert
as
set nocount on
update Address
SET AddyGeoCode = GEOGRAPHY::Point(inserted.AddyLat, inserted.Addylong, 4326)
GO
我会说加入插入的表以发现/更新所有新记录吗?
如果需要,我的地址表模式是AddyLat & AddyLong decimal(7,4)和AddyGeoCode Geography。
蒂亚
是的,您需要加入inserted
表。
UPDATE a
SET a.AddyGeoCode = GEOGRAPHY::Point(a.AddyLat, a.Addylong, 4326) --you can use AddyLat&Long from either a or i
FROM Address a
INNER JOIN inserted i ON a.id = i.id --whatever are your PK columns