SQ工具|1|解决ArcGIS大数据量属性连接|删除数据|字段计算过慢的问题|两表快速关联更新|ArcMapSQL更新

发布时间 2023-07-10 09:52:58作者: 人间惊鸿宴

问题:ArcMap两表属性连接关连大数据量更新过慢

在ArcMap 中当数据量过大时,进行字段计算或者属性连接关联更新时,会出现非常耗时甚至ArcMap桌面端失去响应的情况,使用ArcMap中的SQL插件即可快速解决完成赋值解决问题。

1工具打开时即可获取ArcMap当前加载所有数据的工作空间。

2执行过的SQL语句会在上方记录,双击即可复用,右击即可导出删除

3批更新时各SQL语句间用 ; 隔开 英文分号

--------------两表连接更新方法(MDB):---------------------------------------------------------------------------

------------------------------①--------------------------------------------------------------------------------------------

UPDATE TABLEA  tA INNER JOIN TABLEB tB ON tA.FieldGL = tB.FieldGL SET tA.FieldVal = tB.FieldVal

注:TABLEA为要更新的表,TABLEB为作为更新来源的表,FieldGL 为两表作为关联更新的关联字段,tA.FieldVal 为赋值更新的字段,tB.FieldVal为计算来源字段

例:有两个表FDCQ[BDCDYH,YWH]和QLR[BDCDYH,YWH]表,需要利用两表的BDCDYH作为关联字段,将FDCQ的YWH更新至QLR对应的YWH中,更新语句应为:

UPDATE QLR Q INNER JION FDCQ F ON Q.BDCDYH = F.BDCDYH SET Q.YWH = F.YWH

在SQL语句执行框里输入这段代码点击执行即可更新

------------------------------②----------------------------------------------------------------------------------------------

如果不想手动编写SQL编码,插件提供了交互式更新的方法,点击属性链接

手动选择更新的表及字段信息,点击确认,即可自动填充更新代码,并完成更新。 

速度对比:两表数据量均为为62598条数据,使用ArcMap连接更新时,在等待超过三分钟后界面一直处于未响应状态,未完成后续更新。

使用SQL语句更新,用时在4秒钟左右。

※: 要更新的两个表必须在同一数据库

----------------单字段更新--------------------------------------------------------------------------------------

单字段更新的方法(MDB):

UPDATE TABLE SET FIELD = VALUE

例:更新QLR表中的QLRLX为1 ,   UPDATE QLR SET QLRLX = '1'

 

----------------删除数据---------------------------------------------------------------------------------------

删除数据的方法(MDB):

DELETE FROM TABLE WHERE FIELD = VALUE

例:删除QLR表中XB为1的记录

DELETE FROM QLR WHERE XB = '1'

如需删除所有数据,删除WHERE 包括 WHERE 后的所有代码即可。

----------------总结---------------------------------------------------------------------------------------

1使用SQL工具更新,本质上是利用SQL语言对数据库的更新,所以使用方式不仅以上三种方式,在熟练掌握SQL语句的前提下,可进行任何更新操作,以上三种为作业中常见的三种需求

2更新及删除操作不具有撤回功能,因此使用时需做好数据备份防止错误的SQL语句破坏数据

VX:AM199606080813(免费免费免费),备注博客园