加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:48:34 所属栏目:MsSql教程 来源:网络整理
导读:我试图在SQL Server 2008下创建一个表,其中包含一个GEOMETRY列及其计算的变体. 考虑下列表格,计算列返回缓冲几何体: CREATE TABLE [dbo].[Test] ( [Geometry] GEOMETRY NOT NULL,[Buffer] FLOAT NOT NULL,[BufferedGeometry] AS ([Geometry].STBuffer([Buffe
我试图在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和网络,似乎找不到我的问题的解决方案.我真的希望它能坚持下去,所以我可以有效地进行索引.我可以在代码中设置它,但是随着我在某个时间点需要两个值,我可能会出现数据不一致.

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读