Si vas a hacer un while usa un stored procedure escrito en .NET. Es mas eficiente.
-------------------------------- Atte. Ing. Jose Mariano Alvarez SQL Total Consulting 2008/8/8 Maxi accotto <[EMAIL PROTECTED]> > Si pero el concepto es el mismo, o sea: estas pensado en registros y > ciclos y lo que hay que romper como modelo de pensar es eso, las bases de > datos son conjuntos y todo lo que se pueda resolver asi es mucho mejor, sus > planes son mejores. > > > > Usar un While vs un cursor puede que sea un poco mejor (eso dependera de lo > que hay q hacer y como usas el cursor, pero no veo en un while como recorres > registros de forma optima) > > > > > > > > * * > > *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]<[EMAIL PROTECTED]> > * > > > > *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Mariano > Dios > *Enviado el:* viernes, 08 de agosto de 2008 12:35 p.m. > > *Para:* MAXI > *Asunto:* [dbadmin] Como hacer una iteracion > > > > 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] > To: [EMAIL PROTECTED] > Subject: [dbadmin] Como hacer una iteracion > Date: 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]<[EMAIL PROTECTED]> > * > > > > *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Mariano > Dios > *Enviado el:* viernes, 08 de agosto de 2008 11:02 a.m. > *Para:* MAXI > *Asunto:* [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] > To: [EMAIL PROTECTED] > Subject: [dbadmin] Como hacer una iteracion > Date: 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 Alvarez > *Enviado el:* Jueves, 07 de Agosto de 2008 08:52 p.m. > *Para:* [EMAIL PROTECTED] > *Asunto:* [dbadmin] Como hacer una iteracion > > > > Yo usaria un cursor del tipo FOR UPDATE. > > Ojo con los indices. > > . > > > -------------------------------- > Atte. > Ing. Jose Mariano Alvarez > SQL 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 > ------- > 110 > 110 > 110 > 120 > 120 > 130 > 140 > 140 > 140 > > > Salida: > C1 > ------- > 11*1* > 11*2* > 11*3* > 12*1* > 12*2* > 13*1* > 14*1* > 14*2* > > > Quiere 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.<http://yourinnerathlete.windowslive.com/?locale=es-ar&TXT_TAGLM_WLYIA_takequiz_ar> > > > ------------------------------ > > Descargá ya gratis y viví la experiencia Windows Live. Descubre Windows > Live <http://www.descubrewindowslive.com/latam/index.html> >
