2014-01-11 41 views
1

我目前正在使用一些GIS數據並使用MS SQL Server 2012中的Geography數據類型。我在嘗試顯示地理緯度和經度時遇到了一些困難使用視圖設計器,特別是如果我有一個與另一個表聯接。添加Geography.Lat/Long與設計師查看

例如,下面的視圖設計器工作正常:

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命令。

我試過尋找這個答案,但還沒有找到任何東西,通常這不會是一個問題,因爲我只是從代碼中獲取地理類型對象並獲得顯示的緯度/經度,但是我需要爲第三方創建導出/查看。

+1

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

謝謝,並感謝您的參考,對此仍然陌生:) – Nathan

+1

可能最簡單的解決方案將是給表的別名。例如't1','t2'等,那麼設計師將使用't1.X'而不是'dbo.table1.X' –

回答

0

需要通過別名而不是直接引用表。答案由@MartinSmith提供