我尝试在我的数据库中插入一些坐标,但每次这样做时,它只会在值中显示<Binary data>
。
我试过
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 :(得分:0)
是的,内部UDT(用户定义的类型),即实现geography
的方式,被存储为二进制文件,但是,它们被数据库引擎识别为不止于此。
当您访问它时,SQL Server会自动将二进制文件反序列化为.NET对象,并将.NET对象序列化为二进制文件以进行存储。
因此,当您在UDT实例上调用方法时,无论是在变量还是在列中,它们都会按照您的预期进行响应:
declare @var geography =
geography::Point(51.4618933852762, -0.926690306514502, 4326);
select @var.ToString()