码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server2008 表空间化

时间:2014-09-18 16:50:44      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:sqlserver   gis   

本文以SQL Server2008为例,描述普通属性表转换空间表的过程。

参考资料:微软官方SQL SERVER2008文档


需求:

在普通属性表上增加空间字段,并将表中已有的经纬度坐标,转存为空间数据,方便后续使用arcmap等工具对数据加载并发布服务。


解决:

  1. 新建geometry类型字段,取名为geom

  2. 更新现有属性数据到geom字段中,这里假设经纬度坐标存放字段分别为x,y类型都是numeric

    update tablename set GEOM=geometry::STGeomFromText(‘POINT(‘+convert(varchar,x)+‘ ‘+convert(varchar,y)+‘)‘,4326) where x is not null and y is not null;

    此处注意要将numeric类型用convert函数强制转换为varchar.

    更新期间遭遇 数据库日志文件已满的错误,在此一并记录下来。

    解决办法:

    将数据库切换到 simple 恢复模式 alter database dbname set recovery simple
    再将数据库切换回原来的恢复模式 alter database dbname set recovery full

  3. 对geom字段创建空间索引

    create spatial index idx_tablename_geom on tablename(geom) with (Bounding_Box=(xmin=-180,ymin=-90,xmax=180,ymax=90));



SQL Server2008 表空间化

标签:sqlserver   gis   

原文地址:http://ccjava.blog.51cto.com/8646011/1554682

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!