SSMS 18.12通过“编辑前200行”编辑含geometry字段表报错
SSMS编辑含geometry字段的表报类型无效错误的处理
问题复现场景
- 两台设备安装SSMS 18.12版本时,对包含
geometry类型字段的数据表使用「编辑前200行」功能会触发异常 - 编辑视图中
geometry类型会自动转换为Well Known Text(WKT)格式展示,此时修改视图内任意字段都会弹出报错:
参数类型“Internal.sys.geometry”无效。参数名: value。
- 直接执行普通
SELECT语句查询时,geometry字段展示、读取完全正常,尝试升级SSMS补丁无法解决问题。
可用解决方法
- 方案1(优先推荐,最稳定):放弃图形化编辑界面,直接写SQL语句完成数据修改。涉及
geometry字段更新时,通过STGeomFromText方法传入WKT格式的空间数据即可,参考写法:
-- 按需替换表名、字段名、字段值、筛选条件、空间参考ID UPDATE 你的业务表 SET 普通字段1 = '修改后的内容', 普通字段2 = 123, geom字段 = geometry::STGeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))', 4326) WHERE id = 1
- 方案2(必须用图形界面时的临时规避):打开「编辑前200行」视图后,先把
geometry列从当前编辑视图里隐藏:右键点击视图列标题区域,依次选择「窗格」-「条件」,在弹出的列配置面板里取消勾选所有geometry/geography类型的空间字段,之后再编辑其他普通字段就不会触发报错。需要查看或修改空间字段内容时,单独写SQL操作即可。 - 方案3(永久修复图形编辑功能):该问题是SSMS 18.12版本自带的已知bug,和数据库实例、本机系统环境无关。卸载当前18.12版本,安装SSMS 18.10版本即可恢复图形编辑功能;如果需要使用高版本的新增特性,也可以直接安装SSMS 19.x系列版本,该系列已经修复了空间类型在图形编辑界面的参数校验错误。
内容的提问来源于stack exchange,提问作者user3882865
相关产品推荐
相关产品推荐

