ジオデータベースのバージョン非対応テーブルのデータがジオデータベースの振舞いに関与しない場合、そのデータに対して SQL による更新、挿入、削除操作を実行できます。詳細については、「SQL で編集可能なデータ タイプ」 をご参照ください。
ジオデータベースに登録されたデータはすべて、システムによって保守される NULL でない一意の ObjectID (Row ID) フィールドを持ちます。SQL を使用してジオデータベースのバージョン対応登録されていないテーブルにレコードを挿入するときは、ObjectID 用の一意な値を設定する必要があります。Next_RowID プロシージャを実行して、次に使用可能な ObjectID の値を取得します。次に、その値を INSERT ステートメントで指定して、レコードの ObjectID フィールドに値を設定します。
次の一連の手順では、バージョン対応登録されていないテーブルの行を 1 行ずつ更新して、ObjectID を挿入する方法を説明します。通常は、ObjectID を取得してデータを更新するルーチンまたはクライアント プログラムを作成することになります。
- Microsoft SQL Server Management Studio のエディターなどの SQL エディターにログインします。
データを編集する権限を持ったユーザーとしてデータベースにログインしてください。
- Next_RowID ストアド プロシージャを実行して、ObjectID フィールドの値を取得します。
この例では、gisdata4 は farmland テーブルが格納されるスキーマです。
DECLARE @id as integer EXEC dbo.next_rowid 'gisdata4', 'farmland', @id OUTPUT; SELECT @id "Next ObjectID"; Next ObjectID 423
- 先のステートメントで返された値を使用して、挿入するレコードの ObjectID フィールドに値を入力します。
INSERT INTO gisdata4.farmland (objectid,crop,shape) VALUES ( 423, 'oats', geography::STGeomFromText('POLYGON((-111.85897004 33.25178949, -111.86899617 33.25065270, -111.86887014 33.25062350, -111.85884555 33.25176951, -111.85897004 33.25178949))', 4267) );
- 編集を続けます。編集が完了した場合は、編集内容をデータベースにコミットします。
テーブルに GUID または Global ID フィールドが含まれている場合は、このフィールドにも一意の値を指定する必要があります。詳細については、「SQL Server のグローバル ID (GUID) 列に対する SQL による値の挿入」をご参照ください。