sql:identity 注釈と sql:guid 注釈の使用

適用対象:SQL ServerAzure SQL データベース

sql:identityおよびsql:guid注釈は、Microsoft SQL Server のデータベース列にマップされるすべてのノードの XSD スキーマで指定できます。 アップデートグラム形式では updg:at-identity 属性と updg:guid 属性がサポートされますが、DiffGram 形式ではサポートされません。 updg:at-identity属性は、IDENTITY型カラムの更新における動作を定義します。 updg:guid 属性を使用すると、SQL Server から GUID 値を取得し、それをアップデートグラムで使用できます。 詳細と作業サンプルについては、「 XML アップデートグラムを使用したデータの挿入 (SQLXML 4.0)」を参照してください。

sql:identityおよびsql:guid注釈は、この機能を DiffGrams に拡張します。

DiffGram を実行すると、DiffGram がアップデートグラムに変換された後、アップデートグラムが実行されます。 XSD スキーマで sql:identity および sql:guid 注釈を指定することで、実際にはアップデートグラムの動作を定義します。 したがって、すべての注釈はアップデートグラムのコンテキストで記述します。 これらの注釈は DiffGram とアップデートグラムの両方で使用できますが、アップデートグラムには ID 値と GUID 値をより効率的に処理する機能が既に用意されています。

sql:identityおよびsql:guid注釈は、複雑なコンテンツ要素で定義できます。

sql:identity 注釈

IDENTITY型データベースの列にマッピングされる任意のノードのXSDスキーマでsql:identityアノテーションを指定することができます。 この注釈に指定された値は、IDENTITY型カラムの更新方法を定義します(updategramで提供された値を用いてカラムを修正するか、値を無視する場合はSQL Server生成の値が使われます)。

sql:identity注釈には、次の 2 つの値を割り当てることができます。

ignore
その列のアップデートグラムで指定された値を無視し、SQL Server に依存して ID 値を生成するように、アップデートグラムに指示します。

useValue
updategramに、updategramに与えられた値を用いて IDENTITY型カラムを更新するよう指示します。 アップデートグラムでは、列が ID 値かどうかは確認されません。

updategramが IDENTITY型カラムの値を指定している場合、スキーマ内で sql:identity="useValue" を指定する必要があります。

sql:guid 注釈

アップデートグラムは、SQL Server に GUID 値を生成させ、アップデートグラムでこの値を使用することができます。 DiffGrams のコンテキストでは、 sql:guid 注釈を使用して、SQL Server によって生成される GUID 値を使用するか、その列のアップデートグラムに指定されている値を使用するかを指定できます。

sql:guid注釈には、次の 2 つの値を割り当てることができます。

作成
更新操作でその列に対して SQL Server によって生成された GUID を使用することを指定します。

useValue
アップデートグラムで提供される値を列に使用することを指定します。 これが既定値です。