2014-01-11 2 views
1

В настоящее время я работаю с некоторыми данными ГИС и использую тип данных географии в MS SQL Server 2012. У меня возникают трудности при попытке отобразить широту и долготу географии типа с помощью конструктора View, особенно если у меня есть соединение с другой таблицей.Добавить Geography.Lat/Long to View с дизайнером

Например, ниже отлично работает в конструкторе вид:

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 

Я обнаружил, что если я удалю схемы (ДБО) и вручную создать просмотр через SQL-команду он создаст представление и будет работать правильно, однако попытка его редактирования позже через конструктор отобразит ошибки.

Для справки об ошибке, которую выбрал дизайнер, заключается в том, что «идентификатор нескольких частей не может быть связан».

Хотя ручное создание View может решить проблему, мне бы очень хотелось найти способ решить эту проблему, поскольку она прослушивает меня, но также вызывает проблемы для других людей, работающих над проектом, не зная, что теперь единственный способ редактировать В будущем представление должно создать команду SQL Alter View.

Я попытался найти ответ на этот вопрос, но еще ничего не нашел, как правило, это не было проблемой, поскольку я просто хотел бы захватить объект типа географии из кода и получить отображение Lat/Lon там Мне нужно создать экспорт/просмотр для стороннего участника.

+1

Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Спасибо, спасибо за ссылку, новичок в этом :) – Nathan

+1

Наверное, самым простым решением будет предоставление псевдонимов таблиц. например 't1',' t2' и т. д. тогда дизайнер будет использовать 't1.X' вместо' dbo.table1.X' –

ответ

0

Нужно ссылаться на таблицы с помощью псевдонимов вместо прямых. Ответ предоставлен @MartinSmith

Смежные вопросы