是否有其他方法可以用来获取有关Geometry无效的详细信息?
<{1}}中未提供Geometry.IsValidDetailed(),因此我需要解决此问题。
以下是一个例子:
使用SQL Server 2008 R2(我在Service Pack 2上)。
创建此表:
SQL Server 2008 R2
将此无效多边形插入表格中:
CREATE TABLE [dbo].[GeoTests](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Value] [nvarchar](50) NULL,
[Geo] [geometry] NULL
)
使用此方法可以告诉多边形无效:
INSERT INTO GeoTests (
Value,
Geo
) VALUES (
'Polygon',
Geometry::STGeomFromText('POLYGON((99 99 0, 99 100 0, 100 100 0, 99 100 0, 98 100 0, 99 99 0))', 0)
)
这是我到目前为止选择错误消息的原因:
SELECT Geo.STIsValid() FROM GeoTests
问题是Error_Message()是通用的,只是表明几何是无效的,而不是任何细节。
使用BEGIN TRY
SELECT TOP 1000 [Id]
,[Value]
,[Geo].STGeometryType()
FROM [Tests].[dbo].[
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
PRINT ERROR_NUMBER()
END CATCH
向SQL Server 2008 R2
中实现的函数Geo.IsValidDetailed()发送类似错误是否有任何方法?