记录 SSMS 不同版本空间绘图功能支援性不同状况。SSMS 的空间绘图功能在版本 20 会因为 geometry 结点数过多发生错误无法呈现。
最近发现同一个 geometry 在 SSMS 20 会发生错误,在 SSMS 18 和 19 不会发生错误,最后判断是 20 的特性。
以下语法可以用来测试 SSMS geometry 结点问题
SELECT GEOMETRY::Point(328297.67,2764394.79, 3826)
.STBuffer(10).STBuffer(10).STBuffer(10).STBuffer(10)--1032 节点,SSMS 20 ok
.STBuffer(10).STBuffer(10)-- 4125 节点 SSMS 20 空间绘製错误
.STBuffer(10).STBuffer(10)
.STBuffer(10).STBuffer(10)
.STBuffer(10).STBuffer(10)-- 26万 节点
记录测试结果的截图
SSMS 20 大约 4000 节点开始发生错误:One of the identified items was in an invalid format.
SSMS 18、19 可呈现 4125 节点的 geometry,继续测试极限 SSMS 18 在 26万结点时会显示 object too large,且仅会跳过节点太多的 geometry,若有其它可呈现的 geometry 仍会绘製。
结论
这应该是一个比较少使用者会遇到的特性,只有当 geometry 结点超过 4000 且 SSMS 版本为 20 才会发生错误。
Google 搜寻没有找到类似的案例就记录一下。