Exemple : Création d'une vue spatiale dans SQL Server avec SQL et inscription

Complexité : Débutant Exigences relatives aux données : Utilisez vos propres données

Vous pouvez utiliser SQL pour créer une vue spatiale dans une géodatabase ArcSDE en incluant la colonne spatiale dans la définition de la vue. Lorsque vous utilisez SQL pour créer la vue spatiale, vous devez l'inscrire avec ArcSDE pour l'interroger avec ArcGIS et l'afficher en tant que classe d'entités.

Dans cet exemple, une vue spatiale est créée entre la table "employees" et la classe d'entités de régions.

Créer une vue avec une colonne spatiale

Définissez la vue en incluant la colonne spatiale et l'identifiant d'objet de la classe d'entités avec d'autres colonnes d'attributs que vous souhaitez afficher dans la vue.

Le propriétaire de la table "employees" et de la classe d'entités de régions est l'utilisateur gdb. Par conséquent, il possède déjà les privilèges nécessaires pour créer la vue.

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

reg_id est la colonne de nombres entiers de valeur non nulle issue de la classe d'entités de régions qui sert d'identifiant de ligne lorsque vous inscrivez la vue avec ArcSDE. "Region" est la colonne spatiale issue de la classe d'entités de régions.

Accorder des privilèges sur la vue spatiale

Une fois la vue créée, accordez des privilèges Select à l'identifiant de domaine "ptolemy". N'oubliez pas d'inclure WITH GRANT OPTION pour permettre à ptolemy d'accorder des privilèges sur la vue à d'autres utilisateurs.

USE testdb;

GRANT SELECT 
ON emp.region.vw 
TO [ourdomain\ptolemy]
WITH GRANT OPTION;

GO
ConseilConseil :

L'identifiant de domaine ptolemy doit être ajouté à l'instance SQL Server et à la base de données testdb pour pouvoir lui accorder des privilèges.

Inscrire la vue en tant que couche dans ArcSDE

Pour interroger la vue spatiale avec ArcGIS, vous devez l'inscrire en tant que couche dans ArcSDE. Cela a pour effet d'ajouter des enregistrements aux tables système SDE_layers et SDE_geometry_columns dans ArcSDE.

Le propriétaire de la vue doit inscrire la couche. Il faut donc fournir le nom d'utilisateur gdb et le mot de passe avec les options - –u et –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 colonne spatiale de la vue emp_region_vw utilise le stockage Geometry de SQL Server et stocke les polygones ; par conséquent, GEOMETRY est spécifié avec les options –t et –k, une surface avec l'option –e. Les valeurs que vous spécifiez pour ces options et toutes les autres, à l'exception de –o, dépendent de vos données.

Pour plus d'informations sur la commande sdelayer, consultez le manuel Administration Command Reference.


3/6/2012