Utilizzo delle annotazioni sql:identity e sql:guid

È possibile specificare le annotazioni sql:identity e sql:guid in uno schema XSD su qualsiasi nodo che esegue il mapping a una colonna del database in MicrosoftSQL 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 di utilizzarlo nell'updategram. Per ulteriori informazioni ed esempi, vedere Inserimento di dati mediante updategram XML (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 la modalità di aggiornamento della colonna di tipo IDENTITY (ovvero utilizzando il valore fornito nell'updategram per modificare la colonna o ignorando il valore. Nel secondo caso per la colonna viene utilizzato un valore generato da SQL Server.

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

  • ignore
    Indica all'updategram di ignorare qualsiasi valore fornito nell'updategram per la colonna in oggetto e di generare il valore Identity in base a SQL Server.

  • 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 valore GUID può essere generato in SQL Server e quindi utilizzato 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 valore GUID generato da SQL Server deve essere utilizzato per la colonna specifica nell'operazione di aggiornamento.

  • useValue
    Specifica che per la colonna deve essere utilizzato il valore specificato nell'updategram. Si tratta del valore predefinito.