sql >> Database teknologi >  >> RDS >> Sqlserver

Geografidatatype vs. Geometridatatype i SQL Server

Geografitypen er en lille smule mere restriktiv end geometri. Den kan ikke krydse forskellige halvkugler, og den ydre ring skal trækkes mod uret.

Desværre (nogle finder dette en god ting), giver SQL Server 2012 ikke længere en fejl, når du opretter den ugyldige geografi. Du skal invertere rækkefølgen af ​​punkterne i Roben Island-geometrien, f.eks.:

DECLARE @robben_island geography = ('POLYGON((18.351803 -33.788421, 18.354464 -33.822369,18.386736 -33.820515, 18.382788 -33.787494, 18.351803 -33.788421))')
DECLARE @point_in_robben_island geography= ('POINT(18.369226 -33.80554)')
DECLARE @point_in_alcatraz geography= ('POINT(-122.423401 37.827006)')

SELECT @robben_island.STContains(@point_in_robben_island)   --returns 'True'
SELECT @robben_island.STContains(@point_in_alcatraz)        --returns 'False'



  1. 'Det angivne input repræsenterer ikke en gyldig geografiforekomst'-undtagelse ved brug af SqlGeographyBuilder

  2. Decimal(3,2) værdier i MySQL er altid 9,99

  3. Flere databaser vs enkelt database med logisk opdelte data

  4. Vælg data fra XML-fil som tabel i TSQL