Sql server 如何针对地理点和几何多边形进行连接

Sql server 如何针对地理点和几何多边形进行连接,sql-server,spatial,spatial-query,Sql Server,Spatial,Spatial Query,我有一个sql server 2008引擎。在我的数据库中有两个表。表A有一个PK1列和一个用于点值的地理数据类型。表B有一个PK2列,其几何数据类型用于多边形值。我需要输出一个包含PK1和PK2列的表C。要填充此表,我需要设置“地理点的选择连接在几何多边形中” 我尝试了以下查询: SELECT p.PropertyID ,p.ParcelID ,t.GEOID FROM [bhdev].[dbo].[REF_TRACTS] t join bhdev.dbo.PropertyPara

我有一个sql server 2008引擎。在我的数据库中有两个表。表A有一个PK1列和一个用于点值的地理数据类型。表B有一个PK2列,其几何数据类型用于多边形值。我需要输出一个包含PK1和PK2列的表C。要填充此表,我需要设置“地理点的选择连接在几何多边形中”

我尝试了以下查询:

SELECT p.PropertyID
   ,p.ParcelID
   ,t.GEOID
FROM [bhdev].[dbo].[REF_TRACTS] t
join bhdev.dbo.PropertyParameters p on p.Geolocation.STIntersects(t.geom)=1
这将导致以下错误: 操作数类型冲突:sys.geometry与sys.geometry不兼容

我如何让加入工作?
谢谢

错误文本中有提示:

操作数类型冲突:sys.geometry与sys.geometry不兼容

(我的重点)我的猜测是[bhdev].[dbo].[REF_TRACTS].geom是一个几何类型的列,而不是应该的地理类型。您必须使用以下内容对其进行转换:

geography::Point([bhdev].[dbo].[REF_TRACTS].geom.X, 
    [bhdev].[dbo].[REF_TRACTS].geom.Y, 
    3426
)
(或者切换X&Y,具体取决于您存储纬度的位置)我的建议是,通过向表中添加一个新列、执行上面的转换、调整引用geom列的所有代码以引用新列,并最终将旧列重命名为其他列来转换所有行。如果重命名后没有中断的代码,请完全删除该列