You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ogr2ogr在SQL Server创建含连字符表名的问题求助

解决ogr2ogr创建SQL Server表时保留连字符表名的问题

在使用ogr2ogr操作SQL Server时,默认会将表名中的特殊字符(如连字符-)替换为下划线_,这是因为驱动默认采用SQL Server的非引号标识符规则。要保留带连字符的表名,只需添加--config MSSQLSPATIAL_QUOTED_IDENTIFIERS YES配置项,让驱动使用带引号的标识符,这样SQL Server就能识别包含特殊字符的表名。

修改后的完整命令

ogr2ogr --config MSSQLSPATIAL_USE_GEOMETRY_COLUMNS NO --config MSSQLSPATIAL_USE_BCP NO --config MSSQLSPATIAL_QUOTED_IDENTIFIERS YES -f "MSSQLSpatial" "MSSQL:driver=ODBC Driver 17 For SQL Server;server=192.168.114.62,1433;database=NiyamGis;uid=GisModelBuilder;pwd=GiSM0delBu1ld3R" -lco SCHEMA=personal -nln "iran-test0-123" '/var/www/html/niyam/pousha/backend/storage/app/gis/uploads/projectionChangednoKUSNEhbhiqPQXKyofYVsYtX5A4plUidAbUpEgQ/iran_railways.shp' iran_railways -nlt POLYGON -lco OVERWRITE=true -t_srs EPSG:4326 2>&1

说明

添加--config MSSQLSPATIAL_QUOTED_IDENTIFIERS YES后,ogr2ogr会将表名用双引号包裹提交给SQL Server,此时SQL Server会将带引号的字符串当作完整的标识符,不会替换其中的连字符,最终创建的表名就是预期的iran-test0-123。

内容的提问来源于stack exchange,提问作者Shokouh Dareshiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:22:08