MakeValid (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Konvertiert eine ungültige geometry -Instanz in eine geometry -Instanz mit einem gültigen Open Geospatial-Consortium (OGC)-Typ.

Syntax

  
.MakeValid ()  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Rückgabetypen

SQL Server-Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Hinweise

Diese Methode verursacht möglicherweise eine Änderung des Typs der geometry -Instanz sowie eine leichte Verschiebung der Punkte einer geometry -Instanz.

Beispiele

Im ersten Beispiel wird eine ungültige LineString -Instanz erstellt, die sich selbst überlappt. Mithilfe von STIsValid() wird die Ungültigkeit dieser Instanz bestätigt. STIsValid() gibt für eine ungültige Instanz den Wert 0 (null) zurück.

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

Im zweiten Beispiel wird die Instanz mit MakeValid() gültig gemacht, und die tatsächliche Gültigkeit wird überprüft. STIsValid() gibt für eine gültige Instanz den Wert 1 zurück.

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

Das dritte Beispiel überprüft, ob die Instanz zu einer gültigen Instanz geändert wurde.

SELECT @g.ToString();  

Wenn in diesem Beispiel die LineString -Instanz ausgewählt wird, werden die Werte als gültige MultiLineString -Instanz zurückgegeben.

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

Im folgenden Beispiel wird eine CircularString-Instanz in eine Point-Instanz konvertiert.

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

Weitere Informationen

STIsValid (geometry-Datentyp)
Erweiterte Methoden für geometry-Instanzen