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
Insert e delete
martedì 03 ottobre 2006 - 10.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
mar 3 ott 2006 - 10:50
E' possibile fare un Insert e Delete contemporaneamente con un unica query?grazie
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 3 ott 2006 - 11:00
>E' possibile fare un Insert e Delete contemporaneamente con un
>unica query?
Ciao nandonando,
a prescindere dal DBMS che utilizzi (ma che non menzioni) bisogna capire cosa intendi con "contemporaneamente".
INSERT e DELETE sono due comandi SQL distinti, quindi in una stessa connessione potranno essere eseguiti in sequenza.
Se ti riferisci all'esecuzione simultanea da parte di connessioni parallele, allora la risposta alla tua domanda è "è possibile", nel senso che dipende da come il DBMS gestisce i locks su una stessa risorsa.
Nel caso in cui il lock manager sia in grado di gestire locks a livello di riga/pagina allora le due operazioni possono essere eseguite in modo concorrente, l'importante è che agiscano su righe/pagine distinte; diversamente se il lock scala a livello di tabella, le query verranno implicitamente eseguite in un determinato ordine.
Il discorso è molto più complesso dato che le variabili in gioco sono diverse(isolation level, transazioni, ecc.) quindi ti invito ad approfondire il discorso sulla documentazione del tuo DBMS.
> grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
mar 3 ott 2006 - 11:18
In pratica recupero un record con l'id da una tabella che deve essere cancellato e successivamente deve essere inserito in un altra(o viceversa cioè prima insert e poi delete che è più sicuro) tutto questo per velocizzare la procedura
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 3 ott 2006 - 13:49
>In pratica recupero un record con l'id da una tabella che deve
>essere cancellato e successivamente deve essere inserito in un
>altra(o viceversa cioè prima insert e poi delete che è più sicuro)
>tutto questo per velocizzare la procedura
Ed il problema dove sarebbe?
L'unica accortezza è racchiudere le due operazioni in una transazione esplicita nel caso in cui debba essere garantita l'integrità logica dell'operazione.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
mar 3 ott 2006 - 14:29
esattamente e come di fa a racchiudere in una parentesi?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 3 ott 2006 - 14:32
>esattamente e come di fa a racchiudere in una parentesi?
Cos'è "una parentesi"?!
Non ci hai ancora detto che DBMS stai utilizzando...
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
mar 3 ott 2006 - 14:37
uso sql server
se non ho capito male inserisco le 2 istruzioni tra parentesi ed uso una sola connection giusto?
scusate
http://www.mapnet.it/Fattori-arcani/Fattori-arcani.htm
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 3 ott 2006 - 14:41
>uso sql server
>se non ho capito male inserisco le 2 istruzioni tra parentesi
>ed uso una sola connection giusto?
No.
Devi fare:
BEGIN TRANSACTION
INSERT...
DELETE...
COMMIT TRANSACTION
Se hai altri dubbi consulta i Books Online.
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !