我在 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/