Sql server Geometry.IsValidDetailed()的替代方案
是否有其他方法可用于获取有关几何体无效原因的详细信息 在SQL Server 2008 R2中不可用,因此我需要一种变通方法来获取此消息 这里有一个例子: 使用SQL Server 2008 R2(我使用的是Service Pack 2) 创建此表:Sql server Geometry.IsValidDetailed()的替代方案,sql-server,sql-server-2008-r2,spatial-query,Sql Server,Sql Server 2008 R2,Spatial Query,是否有其他方法可用于获取有关几何体无效原因的详细信息 在SQL Server 2008 R2中不可用,因此我需要一种变通方法来获取此消息 这里有一个例子: 使用SQL Server 2008 R2(我使用的是Service Pack 2) 创建此表: CREATE TABLE [dbo].[GeoTests]( [Id] [int] IDENTITY(1,1) NOT NULL, [Value] [nvarchar](50) NULL, [Geo] [geometry]
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
这是我迄今为止选择错误消息的方法:
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
时,是否有任何方法可以获得与在SQL Server 2012
中实现的函数类似的错误