cursores_2

download cursores_2

If you can't read please download the document

description

Ejempl de cursores en sql server

Transcript of cursores_2

------------------------------()-- crear una llave(?) encriptar()-- crear usuarios,login y asignarles con grant y revoque(?) ROW_NUMBER() no vareto()- procedimientos almacenados()- funciones( hay tres tipos )()- conectar una hoja de excel()- replica() jobs(?) indices(?) backup (respaldo)por el momento solo recuerdo estos temas, talves ustedes recuerden algun otro.------------------------------es la tarea de ayer pero ademas harq que agregarle regiionlos maestros y alumnos deben ser de la misma regionla region es nortesuro centroes como se hacia lo que era para hoytambien dejo para maanauna en la que tenes una tabla clientes y otra que se llama gestoreslos clientes pueden estar repetidosy tienen un campo deudalos vasa ordenar por deuda asi como los alumnos del 1 al 10y de los vas a asignar al gestar asi como con los alumnos--------------------------------------- EJEMPLO 1 --------------------- DECLARE @UltimoProfesorASC VARCHAR(30); DECLARE @UltimoProfesorDESC VARCHAR(30); DECLARE @ProfesorAct VARCHAR(30); DECLARE @EstudianteAct VARCHAR(30); DECLARE @control INT;SET @Control = 1;DECLARE Estudiantes SCROLL CURSOR FOR SELECT cuenta FROM [Bases_DatosII].dbo.EstudianteORDER BY Clasificacion DESCDECLARE ProfesoresASC SCROLL CURSOR FOR SELECT ID FROM PRFESOR ORDER BY ID ASC DECLARE ProfesoresDESC SCROLL CURSOR FOR SELECT ID FROM PRFESOR ORDER BY ID DESCOPEN Estudiantes OPEN ProfesoresASCOPEN ProfesoresDESCFETCH LAST FROM ProfesoresASC INTO @UltimoProfesorASC;FETCH LAST FROM ProfesoresDESC INTO @UltimoProfesorDESC;FETCH FIRST FROM ProfesoresASC INTO @ProfesorAct;FETCH NEXT FROM Estudiantes INTO @EstudianteAct;WHILE @@FETCH_STATUS = 0BEGIN UPDATE [Bases_DatosII].dbo.EstudianteSET IDPROFESOR = @ProfesorAcT WHERE Cuenta = @EstudianteAct; IF @control = 1 BEGIN IF(@UltimoProfesorASC = @ProfesorAct) BEGIN SET @control = 0; FETCH FIRST FROM ProfesoresDESC INTO @ProfesorAct; END FETCH NEXT FROM ProfesoresASC INTO @ProfesorAct; END ELSE BEGIN IF(@UltimoProfesorDESC = @ProfesorAct) BEGIN SET @control = 1; FETCH FIRST FROM ProfesoresASC INTO @ProfesorAct; END FETCH NEXT FROM ProfesoresDESC INTO @ProfesorAct; END FETCH NEXT FROM Estudiantes INTO @EstudianteAct; ENDCLOSE Estudiantes;CLOSE ProfesoresASC;CLOSE ProfesoresDESC;DEAllOCATE Estudiantes;DEAllOCATE ProfesoresASC;DEAllOCATE ProfesoresDESC;--------------------------------------- EJEMPLO 2 --------------------- DECLARE @ProfesorAct VARCHAR(30); DECLARE @EstudianteAct VARCHAR(30); DECLARE @control INT; DECLARE @control2 INT; DECLARE @Control3 INT;SELECT @Control = COUNT(ID) FROM [PRFESOR];SET @Control3 = 1;SET @control2 = @control;DECLARE Estudiantes SCROLL CURSOR FOR SELECT cuenta FROM [Bases_DatosII].dbo.EstudianteORDER BY Clasificacion DESC OPEN Estudiantes FETCH FIRST FROM Estudiantes INTO @EstudianteAct;WHILE @@FETCH_STATUS = 0BEGINSELECT @Control UPDATE [Bases_DatosII].dbo.EstudianteSET IDPROFESOR = @control WHERE Cuenta = @EstudianteAct; IF @Control3 = 1 BEGIN IF @control = 1 BEGIN SET @Control3 = 0 ; END SET @control = @Control -1 ; END IF @control3 = 0 BEGIN SET @control = @Control + 1; IF @control = 5 BEGIN SET @control = @Control2 SET @Control3 = 1 END END FETCH NEXT FROM Estudiantes INTO @EstudianteAct; ENDCLOSE Estudiantes;DEAllOCATE Estudiantes;