创建表或向数据库中的表添加新列时,将为列定义特定数据类型。 数据类型确定以下内容:
- 可以在该列中存储哪些值
- 可以在该列中对数据执行哪些操作
- 如何在数据库中存储该列的数据
ArcGIS 使用特定数据类型。 通过数据库连接、查询图层或 web 服务访问数据库表时,ArcGIS 将过滤掉任何不受支持的数据类型。 ArcGIS 不会显示不受支持的数据类型并且您无法通过 ArcGIS 编辑不受支持的数据类型。 同样,使用 ArcGIS 将包含不受支持的数据类型的表从一个数据库复制和粘贴到另一个数据库时,ArcGIS 只粘贴使用受支持的数据类型的列。
下表第一列列出了 ArcGIS 的各个数据类型。 第二列列出了 ArcGIS 创建的 SQL Server 数据类型。 第三列显示了在查看 ArcGIS 外创建的表(未注册到地理数据库的表)时哪些其他 SQL Server 数据类型(如果有)会映射到 ArcGIS 数据类型。 最后一列用于提供所需其他信息。
ArcGIS 数据类型 | 创建的 SQL Server 数据类型 | 可以查看的其他 SQL Server 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob |
varbinary(max) | binary、image、timestamp、varbinary(n) | |
日期 |
datetime2(7) | datetime2(n)、datetime、smalldatetime | |
仅日期 | date | ||
双精度 |
numeric(p,s) | decimal、float、money、smallmoney | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
浮点型 |
numeric(p,s) | real | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
几何 |
| 指定在创建要素类时是使用几何还是地理空间数据类型。 ArcGIS 不支持以下 Geometry 子类型:
注:以下几何存储类型已在 ArcGIS Pro 中弃用:
无法创建使用这些存储类型的要素类。 目前,您可以查看使用这些几何存储类型的要素类,但将在未来版本中移除此功能。 请使用迁移存储地理处理工具将要素类迁移到受支持的数据类型,以确保您能够继续访问数据。 如果存在压缩的二进制数据,则其将作为 INT 数据类型存储在数据库中。 | |
Global ID | uniqueidentifier | 仅适用于地理数据库。 | |
GUID |
uniqueidentifier | ||
长整型 |
int | ||
栅格 |
int | ArcGIS 栅格数据类型仅适用于地理数据库。 在 SQL Server 的企业级地理数据库中,将在基表中创建整型字段,关联栅格表中的 BLOB 字段用于存储影像数据。 | |
OBJECT ID |
int(4) when created in an enterprise geodatabase integer with identity property when created in a database | ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。每个表只能存在一个。 | |
短整型 |
smallint | bit、tinyint | |
文本 |
varchar, nvarchar, varchar(max), nvarchar(max) | char、nchar | |
仅时间 | 时间 | ||
时间戳偏移 | timestamp with time zone offset |
SQL Server 中的文本数据类型
如果在 SQL Server 数据库中创建 varchar 或 varchar(max) 字段,那么在 ArcGIS 中查看时,该字段将映射至 ArcGIS 文本数据类型。 如果在 ArcGIS 中的 SQL Server 数据库中创建了一个文本字段,则会使用 nvarchar 或 nvarchar(max)。
在 SQL Server 企业级地理数据库中,如果 UNICODE_STRING 配置参数设置为 FALSE,并且文本字段是 7,999 个字符或更少,则使用 varchar 字段。
如果 UNICODE_STRING 配置参数设置为 FALSE,并且文本字段是 8,000 个字符或更多,则使用 varchar(max) 字段。
如果 UNICODE_STRING 配置参数设置为 TRUE,并且文本字段不超过 3,999 个字符,则使用 nvarchar 字段。
如果 UNICODE_STRING 配置参数设置为 TRUE,并且文本字段是 4,000 个字符或更多,则使用 nvarchar(max) 字段。
SQL Server 中的几何数据类型
如表中所示,ArcGIS Pro 可在 SQL Server 中创建并处理两种几何数据类型:SQL Server 几何和 SQL Server 地理。
SQL Server 几何
以下内容是对 Microsoft 几何类型进行的总结。 有关几何类型及其使用方式的详细信息,请参阅 Microsoft SQL Server 文档。
- Microsoft 几何类型支持所有 X/Y 坐标系。
- 平面(平地,欧氏)计算和折点间的直线插值用于渲染和空间比较。
- 符合 SQL 规范(版本 1.1.9)的 Open Geospatial Consortium (OGC) 简单要素,并符合 ISO 标准 SQL MM。
SQL Server 地理
以下内容是对 Microsoft 地理类型进行的总结。 有关地理类型及其使用方式的详细信息,请参阅 Microsoft SQL Server 文档。
- 地理类型支持许多标准地理坐标系,例如 GPS 经度和纬度。
Microsoft 要求使用 SQL Server 数据字典中定义的 SRID 和地理坐标系。
- 椭圆体(圆形地球)模型和折点间的大椭圆线段插值用于计算和空间比较。
- 地理类型使用全球(椭圆体)图层范围。
数据坐标不能超过全球范围。