【发布时间】:2013-12-09 17:01:08
【问题描述】:
我刚刚将人口普查块形状文件导入 Microsoft SQL Server 2012,现在在尝试对我引入的数据使用某些地理特征(STContains、STWithin、UnionAggregate 等)时遇到问题。我检查了导入我的 .shp 文件之前的 .prj 文件,我确定它是 geogrpahy 而不是几何类型。
这是我一直在尝试的示例,只是为了测试它(直接来自 MSDN 网站):
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::Parse('CURVEPOLYGON (COMPOUNDCURVE (CIRCULARSTRING (-122.200928 47.454094, -122.810669 47.00648, -122.942505 46.687131, -121.14624 45.786679, -119.119263 46.183634), (-119.119263 46.183634, -119.273071 47.107523, -120.640869 47.569114, -122.200928 47.454094)))');
SET @h = geography::Parse('POINT(-121.703796 46.893985)');
select @g.stcontains(@h)
这是我收到的错误:
Msg 6506, Level 16, State 10, Line 6
Could not find method 'stcontains' for type 'Microsoft.SqlServer.Types.SqlGeography' in assembly 'Microsoft.SqlServer.Types'
我已经对该主题进行了一些研究,似乎我需要安装某种附加功能。我检查了我的 C: 文件夹,因为我看到了通过 Program Files/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.Types.dll 安装它的建议,但因为找不到“Assemblies”文件夹而被难住了。我还看到了下载 Microsoft SQL Server 2012 功能包 (http://www.microsoft.com/en-us/download/details.aspx?id=29065) 的建议,但我不确定我到底需要什么,如果那是正确的查看位置。
我们将不胜感激您提供的任何帮助。提前致谢。
【问题讨论】:
-
我遇到了同样的问题。有人对此有答案吗?或者任何人都可以为此向 Microsoft 提交错误报告吗?我们正在运行 SQL Server 2014,数据库兼容级别为 120,并且在 SSMS 中仍然出现错误“在程序集 Microsoft.SQLServer.Types 中找不到类型 Microsoft.SQLServer.Types.SQLGeography 的方法 .STContains”我们需要安装服务包?一个功能包,还是什么?我尝试过不同的案例,例如 .STContains、.STcontains 和 .stcontains。没有工作。
标签: sql sql-server sql-server-2012 spatial sqlgeography