我正在尝试使用 SQL Server 使用每个点所在的多边形的 ID 更新点数据表中的字段。我还没有在网上找到一个很好的例子,我将不胜感激任何帮助。我正在包含我目前拥有的代码,即使我知道它是错误的。
Update Points
Set Points.Loc_ID = Polygon.Area_ID
Where GlobalID IN
(GlobalID IN (Select Points.GlobalID
from Points
Join Polygon ON (Polygon.SHAPE).STIntersects(Polygon.SHAPE) = 1))
在这里做一个猜测,因为你的例子有点单薄:
-- update Points
-- set Loc_ID = Polygon.Area_ID
select Points.geoColumn, Points.Loc_ID, Polygon.Area_ID
from Points
join Polygon
on Polygon.SHAPE.STContains(Points.geoColumn) = 1;
我已将其编码为选择,但更新部分在那里 - 只需取消注释并注释掉选择子句即可。神奇之处在于连接 - 您正在寻找包含点的面。因此,我们将其作为连接条件进行测试。