我目前正在处理一些 GIS 数据并在 MS SQL Server 2012 中使用 Geography 数据类型。尝试使用 View 设计器显示 Geography 类型的纬度和经度时遇到一些困难,特别是如果我与另一个连接桌子。
例如,以下在视图设计器中工作正常:
SELECT dbo.table1.ID, dbo.table1.LocationTypeID, dbo.table1.Location, dbo.table1.Location.Lat as LocLatitude, dbo.table1.Location.Long as LocLongitude
FROM dbo.table1
但是,这不会:
SELECT dbo.table1.ID, dbo.table1.LocationTypeID, dbo.table2.LocationTypeName, dbo.table1.Location, dbo.table1.Location.Lat as LocLatitude, dbo.table1.Location.Long as LocLongitude
FROM dbo.table1 INNER JOIN
dbo.table2 ON dbo.table1.LocationTypeID = dbo.table2.ID
我发现如果我删除架构 (dbo) 并通过 SQL 命令手动创建视图,它将创建视图并正确运行,但是,稍后尝试通过设计器对其进行编辑将显示错误。
作为参考,设计师抛出的错误是“无法绑定多部分标识符”。
虽然手动创建 View 可以解决这个问题,但我真的很想找到一种方法来解决这个问题,因为它困扰着我,但也给从事该项目的其他人带来了问题,他们不知道现在是将来编辑 View 的唯一方法是创建一个“Alter View”SQL 命令。
我已经尝试寻找答案,但还没有找到任何东西,通常这不会是一个问题,因为我会从代码中获取地理类型对象并在那里显示纬度/经度,但我需要创建第 3 方的导出/视图。