Los cursores son costosos a nivel performance. Se recomienda no usarlos, 
intentar resolver la necesidad puntual por otro lado, por ejemplo a través de 
un ciclo y la cláusula WHILE.
 
Si hablamos de un conjunto de datos pequeño, no hay problema, pero si estamos 
hablando de procesar un lote grande de datos, probas de una manera, después de 
la otra, y los tiempos de respuesta del motor varían de manera considerable.
 
Mariano




From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: [dbadmin] Como hacer una 
iteracionDate: Fri, 8 Aug 2008 11:59:10 -0300






Hola, y cual es la diferencia de hacer eso y usar cursores? Un while a la larga 
es un proceso de cursores, estas pensando en registros y no en teoria de 
conjuntos como son las bases de datos
 

 
Maximiliano Damian Accotto
Microsoft MVP en SQLServer
SQL Total Consulting
Bogota 3631 P3B
1407 Buenos Aires-Argentina
Movil: (011)-15-5868-5599
Desde el exterior: (+54-911)-5868-5599
[EMAIL PROTECTED]
 


De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Mariano 
DiosEnviado el: viernes, 08 de agosto de 2008 11:02 a.m.Para: MAXIAsunto: 
[dbadmin] Como hacer una iteracion
 
Buen día, la lógica de un cursor se puede reemplazar con la clausula While. 
Podrías insertar los datos a recorrer en una tabla temporal, con una clave 
primaria autonumérica. Despues deberías contar las filas de la tabla temporal, 
y hacer un cliclo hasta que proceses el conjunto de datos. Dentro del ciclo, 
escribirías la funcionalidad que necesites. Mariano



From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: [dbadmin] Como hacer una 
iteracionDate: Fri, 8 Aug 2008 09:30:36 -0300

Hola mariano!, gracias por la respuesta, me olvide de comentar  que estoy 
tratando de hacer la sentencia sin usar cursor alguno. Como última de última 
opción, será usar  cursores.  Como “no veo” solución sin cursores, estoy 
consultando en la lista.  Piensan que no es posible una salida a este planteo 
sin recurrir a los cursores?, yo, no le encuentro la vuelta.
 
Aclaración, la tabla no tiene índice, mas que la pk
 
Desde ya muchas gracias!!
 

           Alejandra Blasco
     Departamento de Sistemas
         Naldo Lombardi S.A. 
        02362-422039(Int. 201)
[EMAIL PROTECTED] 




De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano 
AlvarezEnviado el: Jueves, 07 de Agosto de 2008 08:52 p.m.Para: [EMAIL 
PROTECTED]: [dbadmin] Como hacer una iteracion
 


Yo usaria un cursor del tipo FOR UPDATE.

Ojo con los indices.

.

-------------------------------- Atte.Ing. Jose Mariano AlvarezSQL Total 
Consulting

 

 

2008/8/7 Programacion Naldo Lombardi SA <[EMAIL PROTECTED]>


Necesito hacer que el campo de la tabla t1 que originalmente tiene esos valores 
termine con los valores 
de Salida 
la tabla t1, tiene un campo c1 (int), no PK, ni FK.Ejemplo con algunos 
registros: C1-------110110110120120130140140140Salida: 
C1-------111112113121122131141142Quiere decir que encontramos tres 110, 
entonces necesito iterar el ultimo carcater del 110 de 1 a 3,agregando el 1 en 
el primer, el 2 en el segundo y 3 en el tercer registro. O sea, el primer 
registro 110 paso a ser 111,el segundo registro 110 paso a ser 112 , el tercer 
registro 110 paso a ser 113.
Necesito hacer un script que me permita actualizar esos registros con esa 
iteración
Espero me entiendan. Desde ya muchas gracias. 
             Alejandra Blasco     Departamento de Sistemas         Naldo 
Lombardi S.A.         02362-422039(Int. 201)[EMAIL PROTECTED]  
 
No virus found in this outgoing message.Checked by AVG.Version: 7.5.524 / Virus 
Database: 270.5.12/1597 - Release Date: 07/08/2008 05:54 a.m.
 
 
No virus found in this incoming message.Checked by AVG.Version: 7.5.524 / Virus 
Database: 270.5.12/1599 - Release Date: 07/08/2008 08:49 p.m.
No virus found in this outgoing message.Checked by AVG.Version: 7.5.524 / Virus 
Database: 270.5.12/1599 - Release Date: 07/08/2008 08:49 p.m.



Entra en contacto con el atleta que hay en ti. Haz la prueba.
_________________________________________________________________
Descargá ya gratis y viví la experiencia Windows Live.
http://www.descubrewindowslive.com/latam/index.html

Responder a