2014-01-11 3 views
1

현재 일부 GIS 데이터로 작업 중이며 MS SQL Server 2012에서 Geography 데이터 형식을 사용하고 있습니다. 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의 수동 생성을 통해 문제를 해결할 수 있지만 실제로이 문제를 해결할 방법을 찾고 싶지만 나를 괴롭히는 것은 물론 프로젝트를 작업하는 다른 사람들이 문제를 일으킬 수 있습니다. 미래의보기는 "보기 변경"SQL 명령을 작성하는 것입니다.

나는 이것에 대한 해답을 찾으려고 노력했지만 아무 것도 찾지 못했습니다. 보통 코드에서 지리 유형 객체를 가져 와서 위도/경도를 표시하지만 제 3 자에 대한 내보내기 /보기를 생성해야합니다.

+1

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

고마워, 참조에 대한, 아직이 새로운 :) 감사합니다 – Nathan

+1

아마도 가장 쉬운 해결책은 테이블 별칭을 제공하는 것입니다. 예 : 't1','t2' 등. 그러면 디자이너는'dbo.table1.X' 대신't1.X'를 사용할 것입니다. –

답변

0

직접 테이블 대신 별칭을 사용하여 테이블을 참조해야합니다. 답변 제공 @MartinSmith