Обновление оператора - столбец География - сервер SQL - PullRequest
6 голосов
/ 25 ноября 2011

Отличается ли обновление столбца географии на сервере SQL от обычного поля (varchar ....). Можете ли вы предоставить пример заявления для этого. Благодарю.

Ответы [ 2 ]

13 голосов
/ 25 ноября 2011

Я не уверен, что это именно тот ответ, который вы ищете, но, как я бы сказал, основное отличие состоит в том, что при обновлении «обычного поля» вы обычно предоставляете непосредственно новое значение - например:

UPDATE mytable SET name = 'John' WHERE id = 1

При обновлении столбца географии вы, вероятно, не можете предоставить значение напрямую (так как это очень длинное шестнадцатеричное число, которое кодирует информацию о географии), но вы захотите вычислить его из некоторых других значений (которые могут,но не обязательно должны быть столбцами одной и той же таблицы), например:

UPDATE mytable SET gps=geography::STPointFromText('POINT(' + lng + ' ' + lat + ')', 4326) 

, где lng и lat являются значениями varchar, определяющими координаты GPS в «читаемом человеком» формате (например, lat = '48.955790', lng = '20.524500') - в этом случае они также являются столбцами mytable.

0 голосов
/ 09 марта 2016

Если у вас есть Широта и Долгота как десятичные дроби, вы можете обновить столбец географии, как показано ниже:

DECLARE @latitude DECIMAL(15,6)
    ,@longitude DECIMAL(15,6);

SET @latitude = 29.938580;
SET @longitude = -81.337384;

UPDATE Properties
SET Geog = GEOGRAPHY::Point(@latitude, @longitude, 4326)
WHERE PropertyID = 858;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...