0

我有一个问题,基本上一个列是计算列的表非常“脆弱”,即使是最轻微的变化也会导致它损坏。我想知道从计算列中实现数据的一些最常见的方法是什么(也因为计算列不能被索引)

作为参考,计算列是由以下语句生成的空间数据:

geometry::STGeomFromText('LINESTRING('+CONVERT(NVARCHAR(20),IPStartNumber)+' 0,'+CONVERT(NVARCHAR(20),IPEndNumber)+' 0)',0)
4

2 回答 2

1

更改表将计算列变为持久列。

Alter TABLE [dbo].[Test]
(
[ID] [int] NOT NULL,
[ComputedCloumn] AS (geometry::STGeomFromText('LINESTRING('+CONVERT(NVARCHAR(20),IPStartNumber)+' 0,'+CONVERT(NVARCHAR(20),IPEndNumber)+' 0)',0)) PERSISTED
)
GO 
于 2013-10-07T19:05:50.423 回答
0

在表中的某些情况下,没有真正的 IP 地址“范围”。“范围”是单个 IP 地址,因此 IP 开始和结束是相同的。出于这个原因,几何实例 LINESTRING 的计算仅接收一个构造点,从而引发错误。

于 2013-10-07T19:26:50.627 回答