Ciao Ale,
Per i progressivi, allora potrei valutare di creare una SP che mi vede il select Max del numero che mi interessa, lo inserisce in una tabella di appoggio, poi i successivi li creo vedendo cosa c'è in tale tabella ed infine prima di chiudere la transazione e di fare l'insert, verifico che non esista gia nella tabella finale, altrimenti faccio il rollback.
Invece per quanto riguarda il passaggio di datatable, mi suggerivi di fare Sp atomiche e gestirle via app con TransactionScope:
(questo significa che non c'è bisogno di creare transazioni a livello SQL se le creo gia a livello applicativo giusto?
In Pseudocode una cosa cosi?
Try
Using scope As New TransactionScope()
eseguo SP_Master
for i =0 to datatable.rows.count -1
eseguo SP_Details
next
eseguo SP_OtherDetails
scope.Complete()
End Using
Catch ex As Exception
Response.Wrinte("Errore: {0}", ex.Message)
End Try
Alternativamente se volessi gestire tutto via SQL cosa ne pensi se passo il datable come parametro della SP dichiarando sul Sql server un datype Table?
Certo la prima opzione mi consentirebbe di frammentare meglio le procedure.
Grazie e saluti
Ps
Scusate la lunghezza del post!
--------------------
Vincenzo PESANTE
Software Engineer