本文介紹了如何持久化計(jì)算幾何圖形或地理信息列的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在嘗試在SQL Server 2008下創(chuàng)建一個(gè)包含幾何列及其計(jì)算變體的表。
考慮下表,其中計(jì)算列返回緩沖幾何圖形:
CREATE TABLE [dbo].[Test] (
[Geometry] GEOMETRY NOT NULL,
[Buffer] FLOAT NOT NULL,
[BufferedGeometry] AS ([Geometry].STBuffer([Buffer])) PERSISTED
);
這樣做的問題是它會(huì)導(dǎo)致以下錯(cuò)誤:
消息4994,級別16,州1,線路2
中的計(jì)算列‘BufferedGeometry’
表‘Test’不能持久化
因?yàn)榱蓄愋?#8221;幾何圖形”,
非字節(jié)排序的CLR類型。
我搜索了BOL和Web,但似乎找不到解決問題的方法。我真的希望它能夠持久存在,這樣我就可以有效地對其進(jìn)行索引。我可以在代碼中設(shè)置它,但這樣可能會(huì)出現(xiàn)數(shù)據(jù)不一致的情況,因?yàn)槲以谀硞€(gè)時(shí)間點(diǎn)需要這兩個(gè)值。
有沒有人嘗試過這個(gè)問題并知道解決方案或解決辦法?
更新:Microsoft已在SQL Server 2012中添加了此功能。
推薦答案
我想您可以使用觸發(fā)器來計(jì)算它并將其存儲(chǔ)到[BufferedGeometry]字段
這篇關(guān)于如何持久化計(jì)算幾何圖形或地理信息列的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,