Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Lock tabelle, non ci capisco nulla!!
giovedì 26 aprile 2007 - 16.40
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sankyu
Profilo
| Senior Member
266
messaggi | Data Invio:
gio 26 apr 2007 - 16:40
ciao a tutti ho questo problemino:
eseguo una stored che da una tabella di fatture ne prende una non usata e ne registra l'id in una variabile posto il codice per chiarezza
CREATE procedure prenota_ricevuta()
as
begin
Declare @id_ricevuta numeric
riprova:
begin tran
set @id_ricevuta =(select top 1 id_ricevuta from ricevute where stato_prenotato=0 order by id_ricevuta)
update ricevute set stato_prenotato=1 where id_ricevuta=@id_ricevuta
if @@error =0
begin
commit tran
end
else
begin
rollback tran
goto riprova
end
select @id_ricevuta
end
la mia paura è che due utenti eseguano la stored in contemporanea e quindi prenotino la stessa ricevuta il cui id deve essere poi stampato! vorrei evitare che esistano 2 ricevute con lo stesso id e non posso usare i valori autonumerici perchè devo sapere l'id di fattura prima che questa sia inserita e solo dopo aggiornare i valori di agenzia e transazione nella tabella ricevute.
mi è stato detto che dovrei usare i lock a libello di linea ma non capisco come si fa manco dalla msdn se qualcuno mi fa un esempio su questi lock ne sarei grato!
ciao a tutti e grazie
grancati
Profilo
| Newbie
29
messaggi | Data Invio:
dom 29 apr 2007 - 20:45
>la mia paura è che due utenti eseguano la stored in contemporanea e quindi prenotino la stessa ricevuta
Ciao
sankyu,
serializza la stored procedure in modo da farla eseguire da un solo utente alla volta
----
sp_getapplock
http://msdn2.microsoft.com/en-us/library/aa933410
(SQL.80).aspx
----
un apprfondimento
----
Serializing Procedure Calls Without Uneccesssary Blocking
http://www.sqlservercentral.com/columnists/rcary/2649.asp
----
Ciao
Giorgio
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !