sql-server – 如何保留计算的GEOMETRY或GEOGRAPHY列

前端之家收集整理的这篇文章主要介绍了sql-server – 如何保留计算的GEOMETRY或GEOGRAPHY列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在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
Computed column ‘BufferedGeometry’ in
table ‘Test’ cannot be persisted
because the column type,‘geometry’,
is a non-byte-ordered CLR type.

我有搜索BOL和网络,似乎找不到我的问题的解决方案.我真的希望它能坚持下去,所以我可以有效地进行索引.我可以在代码中设置它,但是随着我在某个时间点需要两个值,我可能会出现数据不一致.

任何人玩这个,知道解决方案或@R_403_323@?

更新:Microsoft已在sql Server 2012中添加了此功能.

@R_403_323@

我想你可以使用触发器来计算它并将其存储到[BufferedGeometry]字段中

猜你在找的MsSQL相关文章