我在 SQL Server 2008 R2 数据库中有一个表。它包含 X、Y 和 Shape 列,用于存储经度和纬度的数字 (38, 8) 和几何类型的计算列。这个想法是每当插入 X 和 Y 时,形状列应该自动填充正确的几何数据。

X 和 Y 已填充。但是,我一直没有成功指定 Shape 列。在 SQL Server Management Studio 中,当我在计算列规范的公式中填充以下任一代码时,它给了我验证公式失败的错误:

(STGeomFromText('POINT (' + CAST([x] as varchar(32)) + ' ' + CAST([y] as varchar(32)) + ')', 4283))

OR

([STGeomFromText]('POINT (' + CAST([x] as varchar(32)) + ' ' + CAST([y] as varchar(32)) + ')', 4283))

有人可以帮我吗?谢谢!

干杯,
亚历克斯

最佳答案

我实际上被这个 post 启发了。

希望对有同样问题的其他人有所帮助。

ALTER TABLE LOCATION
ADD Shape AS (CONVERT(GEOMETRY, CASE WHEN x<> 0
                                    AND y<> 0
                               THEN GEOMETRY::STGeomFromText('POINT('
                                                          + CONVERT(VARCHAR, x)
                                                          + ' '
                                                          + CONVERT(VARCHAR, y)
                                                          + ')', 4238)
                               ELSE NULL
                          END))

关于sql-server - GEOMETRY 数据类型的 SQL Server 计算列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11132285/

10-12 17:06
查看更多