Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Konvertiert eine ungültige geometry -Instanz in eine geometry -Instanz mit einem gültigen Open Geospatial-Consortium (OGC)-Typ.
Syntax
.MakeValid ()
Rückgabetypen
SQL Server-Rückgabetyp: geometry
CLR-Rückgabetyp: SqlGeometry
Remarks
Diese Methode verursacht möglicherweise eine Änderung des Typs der geometry -Instanz sowie eine leichte Verschiebung der Punkte einer geometry -Instanz.
Examples
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();
Siehe auch
STIsValid (geometry-Datentyp)
Erweiterte Methoden für geometry-Instanzen