2013-12-09 69 views
2

我刚刚完成将人口普查区块形状文件导入到Microsoft SQL Server 2012中,并且现在在尝试对我带入的数据使用某些地理特征(STContains,STWithin,UnionAggregate等)时遇到问题。我检查了.prj文件导入我的.shp文件之前,我相信它是geogrpahy而不是几何类型。如何将Microsoft.SqlServer.Types导入Microsoft SQL Server 2012?

这是我一直在努力的例子,只是为了测试它(其中直接来自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),但我不确定究竟需要什么,如果这甚至是合适的位置。

任何帮助,你可能会提供将不胜感激。提前致谢。

+0

我遇到同样的问题。任何人都有这个答案?或者任何人都可以向Microsoft提交错误报告?我们正在运行SQL Server 2014,并且数据库兼容级别为120,并且在SSMS中仍然出现“找不到方法.STC​​ontains for Microsoft.SQLServer.Types.SQLGeography in assembly Microsoft.SQLServer.Types”中的错误。我们是否需要安装Service Pack?一个功能包,或者什么? 我试过不同的情况,如.STContains,.STcontains和.stcontains。没有工作。 – Baodad

回答

1

对于很多我的项目,我在项目级别(Visual Studio)中创建了一个名为“库”的文件夹,我在这里放入了这种性质的DLL和其他第三方的东西。我不知道这是否是标准做法,但与我合作的每个人都这样做了一段时间,在此之前它在TFS和Subversion中运行良好。

反正我的是坐在这个目录中(SQL 2012/Win 7的/ 64位操作系统):

C:\ Program Files文件(x86)的\ Microsoft SQL Server的\ 110 \共享

我将它从该目录复制到我的项目中的库文件夹。

+0

感谢您的回应。我发现它坐在那个目录中。如果我试图在SQL中的特定数据库中访问这些功能,我应该在哪里复制并粘贴它? – ultimate8

+1

我只是重新读你的代码,我想你可能想尝试正确的套管。作为一个例子,STUnion会工作,但STunion不会。这有点奇怪,因为T-SQL不区分大小写。 – radpin

+0

工作正常!感谢您的帮助,我很感激。 – ultimate8

0

我遇到了同样的问题与SQL Server 2016的LocalDB工作:

找不到组装 型 'Microsoft.SqlServer.Types.SqlGeography' 方法“STCrosses“Microsoft.SqlServer .Types'

我花了一段时间来理解STCrosses是几何数据类型,而对于地理我应该使用STIntersects

相关问题