/*cursor con tabla variable*/
declare @TablaVariableEmpleado table (
id_Table int identity(1,1) not null,--El valor semilla es el que nos permite obtener el valor consecutivo de 1 en 1 para poder iterar
Empleado varchar(50) not null,
Sueldo int not null
)
declare @contador smallint --Contendrá el número de registros de la variable tabla
,@EmpleadoSueldoActual varchar(50)
--llenamos la tabla variable, con un query
--Insert into @TablaVariableEmpleado
-- select Nombre, Sueldo
-- From Empleado
-- where sueldo <= 1000
--llenado manual para caso de ejemplo (Empleado, Sueldo)
INSERT INTO @TablaVariableEmpleado
VALUES ('JUAN', 1000),
('JOSE',1200),
('MARIA',1500)
-- Extraemos el nº de registros que contiene lal tabla temporal
set @contador = isnull((Select count(*) From @TablaVariableEmpleado),0)
--SELECT @contador
-- Mientras tenga Datos …
While (@contador > 0)
Begin
--Extraigo el identificador del campo que vamos a necesitar de acuerdo al contador que itera.
Select @EmpleadoSueldoActual = Empleado + ' sueldo actual: $ ' + CONVERT(varchar(10), Sueldo)
from @TablaVariableEmpleado
where id_Table = @contador
--mostrar valor extraido de la tabla variable de acuerdo al contador que itera.
print @EmpleadoSueldoActual
-- Operaciones a realizar cuando estamos recorriendo la tabla.
--aumentar $100 al sueldo del empleado
update @TablaVariableEmpleado
set Sueldo = Sueldo +100
where id_Table = @contador
--Leemos el siguiente.
Set @contador = @contador - 1
End--while
--mostrar resultado del procesamiento
select * from @TablaVariableEmpleado