2013-04-26 62 views
0

我試圖插入一些座標到我的數據庫中,但每次我都這麼做,它只是說<Binary data>的值。Ms Sql Server 2012中的地理類型被存儲爲二進制文件嗎?

我試圖

geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326) 
geography::STPointFromText('POINT(55.9523783996701 -3.2051030639559)', 4326) 
geography::Point(51.4618933852762, -0.926690306514502, 4326) 

這是正常的,它只是說<Binary data>

回答

0

是的,內部UDT(用戶定義類型)(即實現geography的方式)以二進制形式存儲,但數據庫引擎認爲它們不止於此。

當您訪問二進制文件時,SQL Server會將二進制文件自動反序列化爲一個.NET對象,並將.NET對象序列化爲二進制存儲。

所以,當你調用UDT實例的方法,無論是在一個變量或一列,他們的反應正如你所期望:

declare @var geography = 
     geography::Point(51.4618933852762, -0.926690306514502, 4326); 

select @var.ToString() 
+0

不管怎麼說得到它表明,當你看看設計師。有點吸吮,我可以在視覺上看到它。 – chobo2 2013-04-27 19:32:45

相關問題