Una de las recomendaciones más tópicas a la hora de escribir scripts en T-SQL es la de eliminar el empleo de cursores siempre que sea posible.
Brad McGehee en sql-server-performance.com habla del tema. Y aunque menciona el uso de WHILE como alternativa al cursor no pone ningún modelo como ejemplo
declare @loop int create table #test (clave int identity(1,1) not null, dbname varchar (60)) insert into #test select name from master..sysdatabases SET @counter= 1 SELECT @dbname = rtrim(dbname) FROM #test WHERE clave = @counter print @dbname SET @counter = @counter +1 Select * from #test DROP TABLE #test |
declare @counter int declare @dbname varchar (60) create table #testcur (dbname varchar (60)) begin print @dbname fetch next from dbcursor into @dbname end close dbcursor deallocate dbcursor drop table #testcur |