SQL Server のグローバル ID(GUID)列に対する SQL による値の挿入

GUID データ タイプは、中括弧({})で囲まれた 36 文字のレジストリ形式の文字列を格納します。この文字列によって、ジオデータベース内とジオデータベース間でフィーチャまたはテーブル行を一意に識別できます。グローバル ID は、一方向および双方向のジオデータベース レプリカとオフライン マップで使用されるバージョン非対応のデータで、レコードの一意性を維持するために使用されます。GUID はどのテーブルにも追加できます。

編集するテーブルがレプリケーションまたはオフライン マッピングに関与している場合、または GUID を含む場合、SQL を使用してテーブルに新しいレコードを挿入するときに、グローバル ID(GUID)列に一意の値を挿入する必要があります。この操作には、newid() 関数を使用できます。

履歴管理が有効でないバージョン非対応のテーブルを編集する場合は、関数を使用して ID を直接テーブルに挿入します。履歴管理が有効なバージョン非対応のテーブルを編集する場合は、関数を使用して ID をテーブルの履歴管理ビューに挿入します。バージョン対応登録されたテーブルを編集する場合は、関数を使用して値をテーブルのバージョン対応ビューに挿入します。

手順:
  1. SQL Server Management Studio にテーブルを編集する権限を持ったユーザとしてログインします。

    バージョン対応ビューまたは履歴管理ビューを通して編集する場合、ユーザにはビューを編集する権限も必要です。

  2. 新しいクエリ ウィンドウを開いて、編集するテーブルまたはビューを含むデータベースに接続します。
  3. テーブルにレコードを挿入するときに、newid() 関数を使用してグローバル ID(GUID)列に値を設定します。
    INSERT INTO jason.assets (asset_id, globalid) 
     VALUES (57, newid())
    

    Next_GlobalID ストアド プロシージャを使用すると、次の ID 値を取得できます。ただし、ストアド プロシージャを INSERT ステートメントで入れ子にすることはできません。したがって、ストアド プロシージャを呼び出して次の利用可能な値を取得した後、結果の値を INSERT ステートメントに含める必要があります。この方法は、挿入前に値を確認する必要がある場合に便利です。

関連トピック

5/25/2014