我正在尝试在SQL Server 2008下创建一个包含 GEOMETRY 列及其计算变体的表。
考虑下表,计算列返回缓冲的几何图形:
CREATE TABLE [dbo].[Test] (
[Geometry] GEOMETRY NOT NULL,
[Buffer] FLOAT NOT NULL,
[BufferedGeometry] AS ([Geometry].STBuffer([Buffer])) PERSISTED
);
这样做的问题是导致以下错误:
Msg 4994,Level 16,State 1,Line 2 计算列'BufferedGeometry'中 表'Test'无法持久化 因为列类型'几何', 是一种非字节顺序的CLR类型。
我有搜索BOL和网络,似乎无法找到我的问题的解决方案。我真的希望它能够持久化,以便我可以有效地对其进行索引。我可以在代码中设置它,但随后我可能会有不一致的数据,因为我需要在某个时间点使用这两个值。
有人玩这个并知道解决方案或解决方法吗?
更新:Microsoft已在SQL Server 2012中添加了此功能。
答案 0 :(得分:4)
我猜您可以使用触发器来计算它并将其存储到[BufferedGeometry]字段
答案 1 :(得分:1)
谁还有这样的问题:SQL Server 2012现在允许它