Sql server SQL Server空间查询:从Excel工作表导入空间信息

Sql server SQL Server空间查询:从Excel工作表导入空间信息,sql-server,Sql Server,我有一张Excel表格,其中包含美国各州的地理信息,如下所示: NAME, STATE, latitude, Longitude 我想使用数据导入/导出服务直接将此信息导入SQL Server数据库 但是,我希望合并Excel工作表中的纬度和经度列,并将信息存储在SQL Server中,作为地理或几何数据类型 有人能帮我解决这个问题吗 导入/导出向导很难使用,我认为您无法编写复杂的查询来将纬度转换为地理位置,但您可以在SQL management studio中进行尝试 SELECT * I

我有一张Excel表格,其中包含美国各州的地理信息,如下所示:

NAME, STATE, latitude, Longitude
我想使用数据导入/导出服务直接将此信息导入SQL Server数据库

但是,我希望合并Excel工作表中的纬度和经度列,并将信息存储在SQL Server中,作为
地理
几何
数据类型


有人能帮我解决这个问题吗

导入/导出向导很难使用,我认为您无法编写复杂的查询来将纬度转换为地理位置,但您可以在SQL management studio中进行尝试

 SELECT * INTO Your_Table FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\temp\testimportxlsx.xlsx',
 'SELECT ID, Lat, long, sp_geography = geography::STGeomFromText(''Point('' + CAST(Longitude AS VARCHAR(50)) 
 + '' '' + CAST(Latitude AS VARCHAR(50)) + '')'', 4326)  FROM [Sheet1$]')
这假设您的电子表格包含lat、long和ID字段。它将一个名为sp_geography的新字段写入数据类型geography的字段中,该字段是转换后的lat和long字段


您可能需要下载并安装ACE提供程序。如果是,请搜索错误消息。

我希望通过sql查询来完成此操作。否则,我将不得不编写代码从excel工作表中检索数据,然后通过合并两列将其放入sql server。