共用方式為


MakeValid (geometry 資料類型)

適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體

將無效的 geometry 執行個體轉換成具有有效開放地理空間協會 (OGC) 類型的 geometry 執行個體。

Syntax

  
.MakeValid ()  

注意

若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件

傳回型別

SQL Server 傳回類型:geometry

CLR 傳回類型:SqlGeometry

備註

這個方法可能會造成 geometry 執行個體的類型變更,以及 geometry 執行個體的點稍微偏移。

範例

第一個範例會建立與自己重疊的無效 LineString 例項,並使用 STIsValid() 來確認它是無效的例項。 STIsValid() 會針對無效的例項傳回 0 的值。

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);  
SELECT @g.STIsValid();  

第二個範例會使用 MakeValid() 讓此例項變成有效及測試看看此例項是否真正有效。 STIsValid() 會針對有效的例項傳回 1 的值。

SET @g = @g.MakeValid();  
SELECT @g.STIsValid();  

第三個範例會確認此例項已做了哪些變更而成為有效的例項。

SELECT @g.ToString();  

在此範例中,當選取 LineString 例項時,值會當做有效的 MultiLineString 例項傳回。

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))  

下列範例會將 CircularString 執行個體轉換成 Point 執行個體。

DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';  
SELECT @g.MakeValid().ToString();  

另請參閱

STIsValid (geometry 資料類型)
幾何例項上擴充的方法