Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Planar spatial datatyp, geometri, implementeras som en CLR-datatyp (Common Language Runtime) i SQL Server. Den här typen representerar data i ett eukliderat (platt) koordinatsystem.
SQL Server stöder en uppsättning metoder för den rumsliga datatypen geometri . Dessa metoder omfattar metoder för geometri som definieras av OGC-standarden (Open Geospatial Consortium) och en uppsättning Microsoft-tillägg till den standarden.
Feltoleransen för geometrimetoderna kan vara så stor som 1,0e-7 * omfattningar. Omfattningarna refererar till det ungefärliga maximala avståndet mellan punkter i geometriobjektet .
Registrera geometritypen
Geometritypen är fördefinierad och tillgänglig i varje databas. Du kan skapa tabellkolumner av typen geometri och arbeta med geometridata på samma sätt som du använder andra CLR-typer. Kan användas i beständiga och icke-bevarade beräknade kolumner.
Remarks
I SQL-databasen i Förhandsversionen av Microsoft Fabric stöds datatyper för geografi och geometri , men de kan inte speglas i Fabric OneLake.
Examples
A. Visar hur du lägger till och frågar geometridata
Följande två exempel visar hur du lägger till och frågar geometridata. I det första exemplet skapas en tabell med en identitetskolumn och en geometry kolumn, GeomCol1. En tredje kolumn renderar geometry kolumnen i dess WKT-återgivning (Open Geospatial Consortium) (OGC) Well-Known Text (WKT) och använder STAsText() metoden. Två rader infogas sedan: en rad innehåller en LineString instans av geometryoch en rad innehåller en Polygon instans.
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeomCol1 geometry,
GeomCol2 AS GeomCol1.STAsText() );
GO
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
GO
B. Returnerar skärningspunkten för två geometriinstanser
I det STIntersection() andra exemplet används metoden för att returnera de punkter där de två tidigare infogade geometry instanserna korsar varandra.
DECLARE @geom1 geometry;
DECLARE @geom2 geometry;
DECLARE @result geometry;
SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;
SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geom1.STIntersection(@geom2);
SELECT @result.STAsText();
C. Använda geometri i en beräknad kolumn
I följande exempel skapas en tabell med en bevarad beräknad kolumn med hjälp av en geometrityp .
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId int IDENTITY(1,1),
location geometry,
deliveryArea as location.STBuffer(10) persisted
)