Sql server 2012 在SQL Server中查找与多边形的坐标

Sql server 2012 在SQL Server中查找与多边形的坐标,sql-server-2012,spatial-query,Sql Server 2012,Spatial Query,我在这里遇到了一点麻烦,这应该很简单,但我似乎无法让它工作。我已经将一个形状文件(取自GIS)中的多个多边形加载到SQL Server数据库中。我还有一张表,上面有纬度和经度的列表,存储为十进制。我所要做的就是返回每个坐标所在的多边形的Id(或者如果它不在任何一个坐标中,则返回它最接近的那个坐标,但这不应该发生) 我尝试了一些方法,例如: SELECT A.Id, B.Id FROM dbo.TableA A JOIN dbo.TableB B ON A.geometryColumn.STI

我在这里遇到了一点麻烦,这应该很简单,但我似乎无法让它工作。我已经将一个形状文件(取自GIS)中的多个多边形加载到SQL Server数据库中。我还有一张表,上面有纬度和经度的列表,存储为十进制。我所要做的就是返回每个坐标所在的多边形的Id(或者如果它不在任何一个坐标中,则返回它最接近的那个坐标,但这不应该发生)

我尝试了一些方法,例如:

SELECT A.Id, B.Id 
FROM dbo.TableA A 
JOIN dbo.TableB B ON A.geometryColumn.STIntersects(B.geom27700) = 1;

它们都不返回任何内容。涉及的数据类型包括:

geometryColumn AS geometry::STPointFromText('POINT ('+convert(varchar(20),LocationLong)+' '+convert(varchar(20),LocationLat)+')',0)

geom27700 geometry
有人能看到我哪里出了问题,或者我能做些什么来修复吗?这是针对SQL Server 2012的

谢谢

亚历克斯

geometryColumn AS geometry::STPointFromText('POINT ('+convert(varchar(20),LocationLong)+' '+convert(varchar(20),LocationLat)+')',0)

geom27700 geometry