2008-10-23 23 views
10

Bir SQL Server 2008 altında bir GEOMETRY sütun ve bunun hesaplanmış bir varyasyonu içeren bir tablo oluşturmaya çalışıyorum. hesaplanmış sütun tamponlanmış geometri döner Aşağıdaki tablo, göz önüne alındığındaHesaplanan GEOMETRİ veya COĞRAFYA sütunu nasıl düzeltilir

:

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

Bu sorun, aşağıdaki hatası olduğu:

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 BOL ve web arama bilgisi ve benim sorunum için bir çözüm bulamıyor. Gerçekten kalıcı olmasını isterim, böylece etkili bir şekilde indeksleyebilirim. Kodu koyabiliyordum, ancak zaman içinde bir noktada her iki değere de ihtiyaç duyduğumdan tutarsız veriye sahibim.

Bunu yapan herkes bir çözüm veya geçici çözüm biliyor mu?

Güncelleme: Microsoft 2012.

+0

Oy: http://connect.microsoft.com/SQLServer/feedback/details/378126/how-to-persist-a-calculated-geometry-or-geography -column –

cevap

4

Bunu hesaplamak ve hala böyle yaşıyor Kim [BufferedGeometry] alanına

+0

Şahsen veritabanlarında tetikleyiciler kullanmayı sevmiyorum, bir n kullanmaya gerek duymadım yıllarca ow ve umarım bir tane başvurmaya gerek yok. –

+0

Katılıyorum - ama bazen gitmek için tek yol :-) –

1

alanına kaydetmek için bir tetikleyici kullanabilirsiniz tahmin SQL Server bu işlevselliği ekledi sorun: SQL Server 2012 artık izin veriyorsa

bu Bağlan Öğe için