首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Microsoft.SqlServer.Types导入Microsoft SQL Server2012?

如何将Microsoft.SqlServer.Types导入Microsoft SQL Server2012?
EN

Stack Overflow用户
提问于 2013-12-10 01:01:08
回答 3查看 4.7K关注 0票数 2

我刚刚将人口普查块形状文件导入Microsoft SQL Server2012,现在尝试对我引入的数据使用一些地理特征(STContains、STWithin、UnionAggregate等)时遇到了问题。在导入我的.shp文件之前,我检查了.prj文件,我确定它是地理类型而不是几何类型。

这是我一直在尝试的例子,只是为了测试它(直接来自MSDN网站):

代码语言:javascript
复制
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)

这是我收到的错误:

代码语言:javascript
复制
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 Server2012功能包(http://www.microsoft.com/en-us/download/details.aspx?id=29065)的建议,但我不确定我到底需要什么,如果那是合适的地方。

如果您能提供任何帮助,我们将不胜感激。提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-12-10 01:08:58

对于我的许多项目,我在项目级别(Visual Studio)创建了一个名为"libraries“的文件夹,我将这种性质的DLL和其他第三方内容放在其中。我不知道这是否是标准做法,但和我一起工作的每个人都这样做了一段时间,在此之前,它在TFS和Subversion中工作得很好。

无论如何,我的位于这个目录(SQL 2012 / Win 7/ 64位操作系统):

Microsoft

C:\Program Files (x86)\Microsoft SQL Server\110\Shared

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

票数 1
EN

Stack Overflow用户

发布于 2018-01-21 04:30:16

我在使用SQL Server2016 LocalDB时遇到了同样的问题:

在程序集“”Microsoft.SqlServer.Types“”中找不到类型“”Microsoft.SqlServer.Types.SqlGeography“”的方法“”Microsoft.SqlServer.Types“”

我花了一段时间才明白STCrosses是用于几何数据类型的,而对于地理我应该使用 。

票数 0
EN

Stack Overflow用户

发布于 2021-04-01 22:56:08

该方法名称区分大小写,应为STContains而不是stcontains

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20476252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档