sql:identity 注釈と sql:guid 注釈の使用
XSD スキーマで、Microsoft SQL Server のデータベース列にマップされる任意のノードに対し、sql:identity 注釈と sql:guid 注釈を指定することができます。アップデートグラムの形式では updg:at-identity 属性と updg:guid 属性がサポートされますが、DiffGram の形式ではこれらの属性はサポートされません。updg:at-identity 属性では、IDENTITY 型の列を更新するときの動作を定義します。updg:guid 属性では、SQL Server から GUID 値を取得でき、その値をアップデートグラムで使用できます。詳細と実際のサンプルについては、「XML アップデートグラムを使用した、データの挿入 (SQLXML 4.0)」を参照してください。
sql:identity 注釈と sql:guid 注釈を使用すると、この機能が DiffGram にも拡張されます。
DiffGram を実行すると、DiffGram がアップデートグラムに変換された後、アップデートグラムが実行されます。この場合、XSD スキーマで sql:identity 注釈と sql:guid 注釈を指定することで、アップデートグラムの動作を定義することになります。したがって、すべての注釈はアップデートグラムのコンテキストで記述します。これらの注釈は DiffGram とアップデートグラムの両方で使用できますが、アップデートグラムには ID 値と GUID 値をより効率的に処理する機能が既に用意されています。
sql:identity 注釈と sql:guid 注釈は、複合コンテンツを含む要素に定義できます。
sql:identity 注釈
sql:identity 注釈は、XSD スキーマで、IDENTITY 型のデータベース列にマップされる任意のノードに指定できます。この注釈の値では、IDENTITY 型の列の更新方法として、アップデートグラムで提供される値を使用するか、値を無視するかを定義します。値を無視する場合は SQL Server で生成される値が列に使用されます。
sql:identity 注釈には次の 2 つの値を割り当てることができます。
- ignore
アップデートグラムで列に提供される値を無視し、SQL Server で生成される ID 値を使用します。
- useValue
アップデートグラムで提供される値を使用して、IDENTITY 型列を更新します。アップデートグラムでは、列が ID 値かどうかは確認されません。
アップデートグラムで IDENTITY 型列に値を指定する場合は、スキーマで sql:identity="useValue" を指定する必要があります。
sql:guid 注釈
SQL Server で GUID 値を生成し、その値をアップデートグラムで使用できます。DiffGram のコンテキストでは sql:guid 注釈を使用して、列に対し SQL Server で生成される GUID 値を使用するか、アップデートグラムで提供される値を使用するかを指定できます。
sql:guid 注釈には次の 2 つの値を割り当てることができます。
- generate
更新操作で、SQL Server で生成される GUID を列に使用することを指定します。
- useValue
アップデートグラムで提供される値を列に使用することを指定します。これは既定値です。