2013-12-09 94 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

相關問題