示例:使用 SQL 在 SQL Server 中创建空间视图
通过使用 SQL 并将空间列包含到视图定义中,可以创建空间视图。您需要执行此操作才能在 ArcMap 中查看要素。还可以创建空间视图以允许使用包含多个空间列的表;您的空间视图仅包含一个空间列,因此 ArcGIS 可以使用该视图。
本示例在 employees 表与 region 要素类之间创建了一个空间视图来连接数据。
创建包含空间列的视图
对视图进行定义,使其包括来自要素类的空间列和 ObjectID 以及所需的其他属性列。
employees 表和 regions 要素类的所有者是 gdb 用户;因此,该用户已经具有创建该视图的所需权限。
提示:
要创建视图,除了具有在数据库中 CREATE VIEW 的权限外,用户还必须至少具有针对视图中包含的各个表或要素类的 SELECT 权限。
USE testdb;
CREATE VIEW emp_region_view
AS SELECT (e.emp_name,e.emp_id,r.rname,r.reg_id,r.region)
FROM employees e JOIN region r
ON e.emp_id = r.emp_id;
GO
reg_id 是 region 要素类的非空、整数 ObjectID 列。Region 是来自 region 要素类的空间列。表基于 emp_id 列进行连接。
授予空间视图权限
现在视图已存在,可以将 SELECT 权限授予 ptolemy 域登录名。通过包含 WITH GRANT OPTION,用户 ptolemy 便可将视图权限授予其他用户。
USE testdb;
GRANT SELECT
ON emp.region.view
TO [ourdomain\ptolemy]
WITH GRANT OPTION;
GO
提示:
在将权限授予 ptolemy 域登录名之前,必须将其添加到 SQL Server 实例和 testdb 数据库中。
5/10/2014