Ejemplo: Crear una vista espacial en SQL Server con SQL y registrarla

Complejidad: Principiante Requisitos de datos: Usar datos propios

Puede utilizar SQL para crear una vista espacial en una geodatabase de ArcSDE al incluir la columna espacial en la definición de la vista. Si utiliza SQL para crear la vista espacial, debe registrarla con ArcSDE para consultarla con ArcGIS y visualizarla como una clase de entidad.

En este ejemplo, se crea una vista espacial entre la tabla de empleados y la clase de entidad regiones.

Crear una vista con una columna espacial

Defina la vista para incluir la columna espacial y el Id. de objeto de la clase de entidad junto con otras columnas de atributos que desee en la vista.

El propietario de la tabla de empleados y la clase de entidad regiones es el usuario gdb; por lo tanto, este ya tiene los privilegios necesarios para crear la vista.

USE testdb;  CREATE VIEW emp_region_vw 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

El reg_id es la columna de enteros, no nulos de la clase de entidad regiones que se utilizará como el Id. de fila cuando registre la vista con ArcSDE. Región es la columna espacial de la clase de entidad regiones.

Otorgar privilegios en la vista espacial

Una vez creada la vista, otorgue privilegios selectos al inicio de sesión del dominio ptolemy. Incluya WITH GRANT OPTION para permitir que el usuario ptolemy otorgue privilegios en la vista a otros usuarios.

USE testdb;  GRANT SELECT  ON emp.region.vw  TO [ourdomain\ptolemy] WITH GRANT OPTION;  GO
SugerenciaSugerencia:

El inicio de sesión del domino ptolemy se debe agregar a la instancia de SQL Server y a la base de datos de testdb antes de que pueda otorgarle privilegios.

Registrar la vista con ArcSDE como una capa

Para consultar la vista espacial con ArcGIS, debe registrarla como una capa con ArcSDE. Al hacer esto se agregan registros a las tablas del sistema ArcSDE SDE_layers y SDE_geometry_columns.

La capa debe ser registrada por el propietario de la vista; por lo tanto, el nombre y la contraseña del usuario gdb se deben suministrar con las opciones –u y –p.

sdelayer -o register -l emp_region_vw,region -e a  -t GEOMETRY -k GEOMETRY -C reg_id,USER -R 1 -E 2.20,2.20,3.01,3.01 -u gdb -p gdb.bdg  -i sde:sqlserver:server1\ssinstance2 -D testdb

La columna espacial de emp_region_vw utiliza el almacenamiento de Geometría de SQL Server y almacena polígonos; por lo tanto, GEOMETRY se especifica con las opciones –t y –k y a (área) con la opción –e. Los valores que proporciona para éstas y las otras opciones, excepto –o, varían según los datos.

Para obtener más información acerca del comando sdelayer, consulte la Referencia sobre el comando de administración.


3/6/2012