MakeValid (type de données geometry)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Convertit une instance geometry non valide en instance geometry ayant un type OGC (Open Geospatial Consortium) valide.

Syntaxe

  
.MakeValid ()  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Types de retour

Type de retour SQL Server : geometry

Type de retour CLR : SqlGeometry

Remarques

Cette méthode peut entraîner un changement de type de l’instance geometry, ainsi qu’un léger décalage des points d’une instance geometry.

Exemples

Le premier exemple crée une instance LineString non valide qui se chevauche elle-même et utilise STIsValid() pour confirmer qu'il s'agit d'une instance non valide. STIsValid() retourne la valeur 0 pour une instance non valide.

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

Le deuxième exemple utilise MakeValid() pour rendre l'instance valide et tester que l'instance est effectivement valide. STIsValid() retourne la valeur 1 pour une instance valide.

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

Le troisième exemple vérifie comment l'instance a été modifiée pour en faire une instance valide.

SELECT @g.ToString();  

Dans cet exemple, lorsque l'instance LineString est sélectionnée, les valeurs sont retournées en tant qu'instance MultiLineString valide.

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

L'exemple suivant convertit l'instance CircularString en une instance Point.

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

Voir aussi

STIsValid (type de données geometry)
Méthodes étendues sur les instances géométriques