Condividi tramite


Utilizzo delle annotazioni sql:identity e sql:guid

È possibile specificare le sql:identity annotazioni e sql:guid in uno schema XSD in qualsiasi nodo mappato a una colonna di database in Microsoft SQL Server. Il formato dell'updategram supporta gli attributi updg:at-identity e updg:guid che invece non vengono supportati dal formato DiffGram. L'attributo updg:at-identity definisce il comportamento relativo all'aggiornamento di una colonna di tipo IDENTITY. L'attributo updg:guid consente di ottenere un valore GUID da SQL Server e usarlo nell'updategram. Per altre informazioni ed esempi funzionanti, vedere Inserimento di dati tramite updategram XML (SQLXML 4.0).For more information and working samples, see Inserting Data Using XML Updategrams (SQLXML 4.0).

Le annotazioni sql:identity e sql:guid estendono questa funzionalità ai DiffGram.

Per eseguire un DiffGram, è necessario prima convertirlo in updategram. Specificando le annotazioni sql:identity e sql:guid nello schema XSD, di fatto si definisce il comportamento di un updategram. Tutte le annotazioni vengono pertanto descritte nel contesto di un updategram. Le annotazioni possono essere utilizzate sia per i DiffGram che per gli updategram. Per gli updategram è tuttavia già disponibile una modalità di gestione dell'identità e dei valori GUID più potente.

Le annotazioni sql:identity e sql:guid possono essere definite su un elemento di contenuto complesso.

Annotazione sql:identity

È possibile specificare l'annotazione sql:identity nello schema XSD su qualsiasi nodo che esegue il mapping a una colonna di database di tipo IDENTITY. Il valore specificato per questa annotazione definisce il modo in cui viene aggiornata la colonna identity (usando il valore fornito nell'updategram per modificare la colonna o ignorando il valore, nel qual caso viene usato un valore generato SQL Server per questa colonna).

All'annotazione sql:identity è possibile assegnare due valori:

ignore
Indica all'updategram di ignorare qualsiasi valore fornito nell'updategram per tale colonna e di basarsi su SQL Server per generare il valore Identity.

useValue
Indica all'updategram di utilizzare il valore fornito nell'updategram per aggiornare la colonna di tipo IDENTITY. Un updategram non controlla se la colonna è un valore Identity.

Se l'updategram specifica un valore per la colonna di tipo IDENTITY, è necessario specificare sql:identity="useValue" nello schema.

Annotazione sql:guid

Un updategram può avere SQL Server generare un valore GUID e quindi usare questo valore nell'updategram. Nel contesto dei DiffGram è possibile utilizzare l'annotazione sql:guid per specificare se utilizzare un valore GUID generato da SQL Server oppure il valore fornito nell'updategram per la colonna specifica.

All'annotazione sql:guid è possibile assegnare due valori:

generate
Specifica che il GUID generato da SQL Server essere utilizzato per tale colonna nell'operazione di aggiornamento.

useValue
Specifica che per la colonna deve essere utilizzato il valore specificato nell'updategram. Rappresenta il valore predefinito.