ArcSDE管理下をクエリで更新



SQLクエリとArcSDE管理下

上記ヘルプの情報を元にクエリを作ると下記
非SDE管理下からSDE管理下へのインサート

常識的に考えて、Management Studioで実行する際には結果はテキストにしないとManagement Studioが空間結果でこけたりするので注意

BEGIN TRY
BEGIN TRANSACTION

DECLARE @ID int;
DECLARE @SHP GEOMETRY;

DECLARE TMPCursor cursor FOR
SELECT
 ID
 ,Shape
FROM
 ポイントテーブル;

--カーソルの開封
OPEN TMPCursor

--FETCH
FETCH NEXT FROM TMPCursor INTO @ID,@SHP;

WHILE (@@fetch_status = 0)
BEGIN

  DECLARE @nextrowId int
  EXEC dbo.next_rowid 'スキーマ名', 'SDE管理下のテーブル', @nextrowId OUTPUT
  SELECT @nextrowId "Next RowID";
  INSERT INTO SDE管理下のテーブル
  (
    OBJECTID
	,ID
	,SHAPE
  ) VALUES (
    @nextrowId
	,@ID
	,@SHP
  )
  FETCH NEXT FROM TMPCursor INTO @ID ,@SHP;
END

--カーソルを閉じる
CLOSE TMPCursor
DEALLOCATE TMPCursor

PRINT 'COMMIT';

COMMIT TRANSACTION --トランザクションを確定
END TRY
BEGIN CATCH--例外処理
  PRINT 'ROLLBACK';
  ROLLBACK TRANSACTION--トランザクションを取り消し
END CATCH
カテゴリー: 運用, 開発 タグ: , パーマリンク