Archivos de Categoría: SQL Server - Paginas 7

Cursores en SQL Server

Siempre nos puede ser util recorrer los resultados de una consulta para hacer alguna operación sobre cada registro en concreto. Supongamos por ejemplo que queremos asignar una contraseña distinta a cada usuario de una tabla.

-- declaramos la variable en la que almacenaremos el identificador del registro a modificar
declare @id as int
-- declaramos el cursorpara la consulta que queramos
declare ELCURSOR cursor for select id_usuario from usuarios 
open ELCURSOR
	-- metemos el primer refistro en la variable
	fetch next from ELCURSOR into @id
	while @@fetch_status = 0
		begin
		       -- actualizamos el campo del registro
			update usuarios set contrasena = right(convert(varchar(50), NEWID()), 10) where id_usuario = @id
		
		-- avanzamos al siguiente registro		
		fetch next from ELCURSOR into @id
    	end
-- cerramos el cursor
close ELCURSOR
deallocate ELCURSOR