例: SQL を使用して SQL Server で空間ビューを作成する
ビューの定義に空間列を含めることで、SQL を使用して空間ビューを作成できます。空間ビューを作成すると、ArcMap でフィーチャを表示できます。また、空間ビューを作成すると、複数の空間列を含むテーブルを使用することもできます。空間ビューには、1 つの空間列だけが含まれるため、ArcGIS で使用することができます。
この例では、employees テーブルと region フィーチャクラスを結合する空間ビューを作成します。
空間列を持つビューの作成
フィーチャクラスの空間列および ObjectID の両方と、ビューに含めるその他の属性列を含むように、ビューを定義します。
employees テーブルと region フィーチャクラスの所有者は 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 フィーチャクラスの NULL ではない整数の ObjectID 列です。region は、region フィーチャクラスの空間列です。テーブルは、emp_id 列に基づいて結合されます。
空間ビューに対する権限の付与
これでビューが存在するので、ptolemy ドメイン ログインに SELECT 権限を付与します。ptolemy がビューに対する権限を他のユーザに付与できるように、WITH GRANT OPTION を含めます。
USE testdb;
GRANT SELECT
ON emp.region.view
TO [ourdomain\ptolemy]
WITH GRANT OPTION;
GO
ptolemy ドメイン ログインに権限を付与するには、SQL Server インスタンスと testdb データベースにそのドメイン ログインを追加する必要があります。