2

我已经阅读了一些关于使用空间优化表的文章。实际上,我使用存储varchar的纬度和经度作为逗号分隔 (lat;lng)。

您能否建议执行此更改的最佳方法并列举优势。对于大型项目真的有必要还是只迁移到 SQL Server 2008?

谢谢。

4

1 回答 1

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
于 2010-10-06T18:59:59.743 回答