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
Coppia cursori
lunedì 01 marzo 2010 - 19.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ciccioherz
Profilo
| Junior Member
93
messaggi | Data Invio:
lun 1 mar 2010 - 19:15
ho bisogno di inserire un cursore in una stored per capire se la colonna "A" ha un certo valore, in caso positivo devo aggiornare la colonna "B".
poichè la colonna A non è univoca, dovrei aprire un secondo cursore che vada di pari passo con il primo in modo da ottenere l'id del record in cui il curose si trova, così facendo potrei fare:
se A = "..." update tabella insert "b" valore where id = @var
la domanda è: esiste un modo per evitare di aprire due cursori? cioè, all'interno del ciclo while non esiste alcun modo per recuperare nel mio caso l'id del record in cui si trova il cursore?
grazie
---
modifico e annullo il messaggio (la stanchezza gioca brutti scherzi)
faccio prima a creare il cursore sull'id e ottengo il campo A,B, o altro che sia in base proprio all'id ottenuto dal cursore..
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 1 mar 2010 - 21:00
>la domanda è: esiste un modo per evitare di aprire due cursori?
Ti posso assicurare che il 99,999% delle volte si può ottenere il medesimo risultato utilizzando una soluzione set-based senza l'utilizzo di alcun cursore che obbliga inutilmente il dbengine a ragionare riga-per-riga impedendo tutte le ottimizzazioni che il motore è in grado di eseguire.
Se prepari un esempio completo con la struttura delle tabelle (CREATE TABLE), alcune righe di prova (INSERT INTO) ed il result set finale che intendi ottenere con quei dati vedremo di trovare una soluzione alternativa.
>modifico e annullo il messaggio (la stanchezza gioca brutti scherzi)
>faccio prima a creare il cursore sull'id e ottengo il campo A,B,
>o altro che sia in base proprio all'id ottenuto dal cursore..
Fai prima a non creare alcun cursore!
Ciao!
--
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 !