同时更新多行 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
JOIN
s。
发布有效的更新查询。 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的主要内容,如果未能解决你的问题,请参考以下文章