同时更新多行 SQL server

Posted

技术标签:

【中文标题】同时更新多行 SQL server【英文标题】:Update several rows simultaneously SQL server 【发布时间】:2017-01-18 16:43:23 【问题描述】:

我正在创建一个表格,其中列出了城市、州、邮编和经度/纬度。我在表中创建了另一个使用地理数据类型的列(称为 GeoLoc)。我想将我的纬度和经度列合并到 GeoLoc 列中,以便创建 s-s-rS 地图报告。

我可以简单地使用更新语句来执行此操作。例如:

UPDATE us_loc_data SET GeoLocation = 'POINT(-71.013202  43.005895)' WHERE Zip = '210' 

问题是,我有超过 40,000 行都有不同的坐标。我可以以某种方式同时对每一行执行此更新吗?

【问题讨论】:

有几种方法可以做到这一点。可能最简单的方法是创建一个包含所有更改的临时表,然后对该表执行UPDATE JOINs。 发布有效的更新查询。 Point 需要 spatial reference ID 参数。点也不能像标量函数一样使用,它应该像geography::Point(Lat, long,SRID)那样使用 我想我不明白我的更新是如何无效的。这个教程不正确吗? mssqltips.com/sqlservertip/2552/… 【参考方案1】:

这样的?

Update us_loc_data SET GeoLocation = geography::Point(B.lat,b.Lng,4326 )
 From  us_loc_data A
 Join  YourLatLngTable B on (A.Zip=B.Zip)

【讨论】:

我会尽快尝试并回复您。 @AnthonySims 很高兴它有帮助

以上是关于同时更新多行 SQL server的主要内容,如果未能解决你的问题,请参考以下文章

是否可以同时更新 SQL Server 数据库和 Informix 数据库?

SQL Server 和 Oracle 兼容的多行插入?

如何使用 CURSOR 更新 SQL 中的多行?

Python (DJango) - 同时更新多行模型

在 Sql Server 中插入或更新多行

插入后使用触发器更新多行(sql server)