How to persist a calculated GEOMETRY or GEOGRAPHY column

依然范特西╮ 提交于 2019-12-03 13:29:38

问题


I'm trying to create a table under SQL Server 2008 containing a GEOMETRY column and a calculated variation thereof.

Considering the following table where the calculated column returns a buffered geometry:

CREATE TABLE [dbo].[Test] (
    [Geometry]      GEOMETRY    NOT NULL,
    [Buffer]        FLOAT       NOT NULL,
    [BufferedGeometry] AS ([Geometry].STBuffer([Buffer])) PERSISTED
);

The problem with this is it results in the following error:

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.

I have search BOL and the web and can't seem to find a solution to my problem. I really would like it to be persisted so I can index it effectively. I could set it in code, but then I have the possibility of inconsistent data as I require both values at some point in time.

Anyone played with this and know a solution or workaround?

Update: Microsoft has added this functionality in SQL Server 2012.


回答1:


I guess you could use a trigger to calculate it and store it to the [BufferedGeometry] field




回答2:


Whoever is still having such problem: SQL Server 2012 now allows it



来源:https://stackoverflow.com/questions/230992/how-to-persist-a-calculated-geometry-or-geography-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!