Beispiel: Erstellen und Registrieren einer räumlichen Sicht in SQL Server mit SQL

Komplexität: Einsteiger Erforderliche Daten: Eigene Daten verwenden

Sie können SQL verwenden, um eine räumliche Sicht in einer ArcSDE-Geodatabase zu erstellen, indem Sie die räumliche Spalte in die Sichtdefinition einbinden. Wenn Sie mithilfe von SQL eine räumliche Sicht erstellen, müssen Sie sie in ArcSDE registrieren, um die räumliche Sicht mit ArcGIS abfragen zu können und sie als Feature-Class anzuzeigen.

In diesem Beispiel wird eine räumliche Sicht zwischen der Tabelle "employees" und der Feature-Class "region" erstellt.

Erstellen einer Sicht mit einer räumlichen Spalte

Definieren Sie die Sicht so, dass sie sowohl die räumliche Spalte als auch die ObjectID aus der Feature-Class zusammen mit anderen Attributspalten, die in der Sicht enthalten sein sollen, einschließt.

Der Besitzer der Tabelle "employees" und der Feature-Class "regions" ist der Benutzer "gdb", deshalb hat der Benutzer bereits die entsprechenden Berechtigungen zum Erstellen der Sicht.

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" ist die Ganzzahlspalte (Not NULL) aus der Feature-Class "regions", die als Zeilen-ID verwendet wird, wenn Sie die Sicht in ArcSDE registrieren. "Region" ist die räumliche Spalte aus der Feature-Class "regions".

Erteilen von Berechtigungen für die räumliche Sicht

Nachdem die Sicht erstellt wurde, erteilen Sie dem Domänenbenutzer "ptolemy" SELECT-Berechtigungen. Schließen Sie WITH GRANT OPTION ein, um dem Benutzer "ptolemy" zu ermöglichen, auch anderen Benutzern Berechtigungen für die Sicht zu erteilen.

USE testdb;

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

GO
TippTipp:

Der Domänenbenutzer "ptolemy" muss der SQL Server-Instanz und der testdb-Datenbank hinzugefügt werden, damit Sie ihm Berechtigungen erteilen können.

Registrieren der Sicht als Layer in ArcSDE

Um die räumliche Sicht mit ArcGIS abzufragen, müssen Sie sie in ArcSDE als Layer registrieren. Dadurch werden Datensätze zu den ArcSDE-Systemtabellen "SDE_layers" und "SDE_geometry_columns" hinzugefügt.

Der Layer muss vom Besitzer der Sicht registriert werden; daher müssen mit den Optionen "–u" und "–p" der Benutzername "gdb" sowie das Kennwort angegeben werden.

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

Die räumliche Spalte in "emp_region_vw" verwendet den Datentyp "Geometry" von SQL Server als Speicherformat und speichert Polygone; deshalb wird GEOMETRY mit den Optionen "–t" und "–k" angegeben und a (area) wird mit der Option "–e" definiert. Die für diese und alle anderen Optionen bereitgestellten Werte, außer "–o", sind in Abhängigkeit Ihrer Daten unterschiedlich.

Weitere Informationen zum Befehl "sdelayer" finden Sie in der Administration Command Reference.


7/10/2012