2017-01-18 21 views
1

Я создаю таблицу, в которой перечислены города, состояние, zip и long/lat. Я создал другой столбец (называемый GeoLoc) в моей таблице, который использует тип данных географии. Я хотел бы объединить колонки широты и долготы в столбце GeoLoc, чтобы я мог создавать отчеты по картам SSRS.Обновление нескольких строк одновременно SQL-сервер

Я могу просто использовать инструкцию для обновления. Например:

UPDATE us_loc_data SET GeoLocation = 'POINT(-71.013202 43.005895)' WHERE Zip = '210' 

Проблема в том, что у меня более 40 000 строк, имеющих разные координаты. Могу ли я каким-то образом выполнить это обновление на каждой строке одновременно?

+1

Есть несколько способов сделать это. Вероятно, самый простой способ - создать временную таблицу, содержащую все ваши изменения, и выполнить «ОБНОВЛЕНИЕ», которые «ПРИСОЕДИНЯЮТСЯ» к этой таблице. – Siyual

+0

Опубликовать действующий запрос на обновление. Для параметра «Точка» требуется параметр «пространственный ссылочный идентификатор». Также Point canno используется так же, как скалярная функция, которую он должен использовать как 'geography :: Point (Lat, long, SRID)' –

+0

Я думаю, я не понимаю, как мое обновление недействительно. Этот учебник неверен? https://www.mssqltips.com/sqlservertip/2552/creating-an-ssrs-map-report-with-data-pinpoints/ –

ответ

1

Что-то вроде этого?

Update us_loc_data SET GeoLocation = geography::Point(B.lat,b.Lng,4326) 
From us_loc_data A 
Join YourLatLngTable B on (A.Zip=B.Zip) 
+0

Я попробую это быстро и вернусь к вам. –

+0

Это сработало красиво. Большое спасибо. –

+1

@ AnthonySims С удовольствием помог –