Partager via


MakeValid (type de données geometry)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Base de données SQL dans Microsoft Fabric

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

Syntaxe

  
.MakeValid ()  

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