Tsql 在SQL server上同时更新多行

Tsql 在SQL server上同时更新多行,tsql,reporting-services,sql-update,spatial,geography,Tsql,Reporting Services,Sql Update,Spatial,Geography,我正在创建一个表,其中列出了城市、州、邮编和long/lat。我在表中创建了另一列(称为GeoLoc),该列使用地理数据类型。我想将纬度和经度列合并到GeoLoc列中,以便创建SSRS地图报告 我可以简单地使用update语句来实现这一点。例如: UPDATE us_loc_data SET GeoLocation = 'POINT(-71.013202 43.005895)' WHERE Zip = '210' 问题是,我有超过40000行都有不同的坐标。我可以在每一行同时执行此更新吗?

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

我可以简单地使用update语句来实现这一点。例如:

UPDATE us_loc_data SET GeoLocation = 'POINT(-71.013202  43.005895)' WHERE Zip = '210' 
问题是,我有超过40000行都有不同的坐标。我可以在每一行同时执行此更新吗?

类似这样的操作吗

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)

有几种方法可以做到这一点。最简单的方法可能是创建一个包含所有更改的临时表,然后执行
更新
,将
连接到该表。发布有效的更新查询<代码>点
需要
空间参考ID
参数。点不能像标量函数一样使用,它应该像
geography::Point(Lat,long,SRID)
一样使用。我想我不明白我的更新是如何无效的。这篇教程不正确吗?“我会很快尝试一下,然后再给你回复。”AnthonySims很高兴这有帮助