簡體   English   中英

如何在SQL Server中存儲Point數據類型?

[英]How do I store Point datatype in SQL Server?

如何最好地在SQL Server數據庫中存儲Point數據類型?

我正在考慮只是使其成為nvarchar ,然后插入一個點字符串,如: 100,246然后當我從數據庫中讀取值時才對字符串進行分割,但是有沒有辦法將其作為Point插入?

SQL Server確實支持Point數據類型:

創建表:

CREATE TABLE [dbo].[PointTest]
(
    [RowId] [int] IDENTITY(1,1) NOT NULL,
    [MyPoint] [GEOMETRY] NOT NULL,
) 

插入(SRID = 4326):

INSERT INTO PointTest(MyPoint) values (GEOMETRY::Point(3, -4, 4326))

選擇:

SELECT MyPoint.STX X, MyPoint.STY Y FROM PointTest;

SQLFiddle: 鏈接

有關空間數據類型的更多信息:

您可以為每個維度定義2個int變量。 這樣,就無需拆分您從數據庫讀取的值。

X int,
Y int

如果您在談論地理點,則可以查看“地球坐標系”的地理數據類型或“歐幾里得(平面)坐標系”的幾何數據類型。

自2008年左右以來,SQL Server的空間數據功能可以幫助采用各種方法查詢空間數據,包括(但不限於) point

對於地理點:

create table foo (
  id int primary key,
  latlon [GEOGRAPHY]
);

insert into foo values (1, geography::Point(40.7, -74, 4326));

select 
  latlon.Lat as latitude,
  latlon.Long as longitude,
  latlon.ToString() as plaintext
from foo;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM