Нужно переместить таблицу SQL Server 2005, хранящую Lat;Lng как varchar, в Spatial?
Я прочитал несколько статей об использовании пространственно оптимизированных таблиц. На самом деле я использую сохраненную широту и долготу как varchar
через запятую (лат;lng).
Не могли бы вы предложить лучший способ выполнить это изменение и перечислить преимущества. Это действительно необходимо для большого проекта или только перейти на SQL Server 2008?
Благодарю.
1 ответ
Решение
Я бы добавил к вашей таблице два новых постоянных вычисляемых двоеточия, как показано в демонстрации ниже.
create table Demo (
LatLng varchar(100),
Lat as CAST(LEFT(LatLng, charindex(';',LatLng)-1) as float) PERSISTED,
Lng as CAST(SUBSTRING(LatLng, charindex(';',LatLng)+1, LEN(LatLng)-charindex(';',LatLng)) as float) PERSISTED
)
insert into Demo
(LatLng)
values
('33.0000;15.222222')
select *
from Demo
drop table Demo