10

SQL Server 2008 で、 GEOMETRY列とその計算されたバリエーションを含むテーブルを作成しようとしています。

計算された列がバッファリングされたジオメトリを返す次の表を検討してください。

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

これに関する問題は、次のエラーが発生することです。

メッセージ 4994、レベル 16、状態 1、行 2 テーブル 'Test' の計算列 'BufferedGeometry' は、列の型 'geometry' がバイト順でない CLR 型であるため、永続化できません。

BOL と Web を検索しましたが、問題の解決策が見つからないようです。効果的にインデックスを作成できるように、永続化したいと思います。コードで設定できますが、ある時点で両方の値が必要になるため、データの一貫性が失われる可能性があります。

誰でもこれで遊んで、解決策または回避策を知っていますか?

更新: Microsoft は、SQL Server 2012 にこの機能を追加しました。

4

2 に答える 2

4

トリガーを使用して計算し、[BufferedGeometry] フィールドに保存できると思います

于 2008-10-23T22:18:13.673 に答える