salve Marco,
mdenicola wrote:
Salve,
è da poco che lavoro con sql server e mi serve la stessa funzionalità di blocco tabelle come in MySQl.
Ho la necessità di inserire dei dati di un utente in sequenza evitando che si possano mischiare con quelli di altri utenti. L'inserimento di dati avviene in fase di registrazione ad un servizio In pratica devo bloccare in R/W la tabella, eseguire gli n INSERT e poi sbloccarla.
Si può fare in sql Server?
Grazie
Marco
scusami se sembrero' "duro", ma personalmente non comprendo molto il fatto di dover bloccare la tabella... tecnicamente non ha senso e mi pare denotare un'affermazione alquanto "erratica": "tutte le righe da 1 a 1000 costituiscono xxx"... questa' e' tendenzialmente un'affermazione sbagliata di principio... le righe possono "appartenere" a qualche cosa solo nel senso di un'apposito constraint, ad esempio una foreign key... quindi, tutte le righe che referenzino la riga esterna X "appartarterranno" a questo qualche cosa... diversamente e' solo un errore di design alquanto "infantile"... come ben sai, infatti, una tabella in quanto tale non ha un senso di ordinamento o separazione dato che tutto cio', convenzionalmente, matematicamente e by design non ha alcun senso... l'ordinamento ha un senso solo successivamente in termini di proiezione, operazione completamente avulsa dal recupero delle righe costituenti il subset restituito... inoltre, se l'operazione non e' un'operazione una tantum di carattere amministrativo ma un'operazione ordinaria quotidiana, ovviamente penalizza enormemente la concorrenza...
quindi non sono tendenzialmente d'accordo su quanto proponi... detto cio', puoi provare ad eseguire un blocco a livello di select con l'hint WITH TABLOCKX a livello di una transazione esplicita impostata anche a livello di concorrenza SERIALIZABLE, quindi procedere all'inserimento per poi chiudere con commit (o rollback) la transazione esplicita... personalmente non ho mai sperimentato quesat implementazione in quanto assurdamente fuori luogo in qualsiasi scenario a me conosciuto... non pratico, non necessario, non utile, non....
saluti