Mejora de script de inserción de usuarios (por tipo de usuario) para registro de Bitácora
SET DATEFIRST 7;
SET NOCOUNT ON;
SET DATEFORMAT MDY;
SET LANGUAGE spanish;
--/////////////////// INSERCIÓN DE DATOS EN Cat_BitacoraUsuarios ///////////////////
-- ** iTipoUsuario --> 1=Administradores, 2= Profesores, 3=Alumnos, 4=Familiares
--ADMINISTRADORES
INSERT INTO dbo.Cat_BitacoraUsuarios
( idOriginal ,
iTipoUsuario ,
sNombre ,
sObservaciones ,
dfecha
)
SELECT idUsuario, 1 AS iTipoUsuario, (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre) AS sNombre , ('UsuarioClave|' + ISNULL(sClave, ' ') + '|') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Usuarios WHERE bActivo = 1 AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 1 AND idOriginal = dbo.Cat_Usuarios.idUsuario)
--PROFESORES
INSERT INTO dbo.Cat_BitacoraUsuarios
( idOriginal ,
iTipoUsuario ,
sNombre ,
sObservaciones ,
dfecha
)
SELECT idProfesor, 2 AS iTipoUsuario, (sApellidoP + ' ' + sApellidoM + ' ' + sNombre) AS sNombre , ('Profesor') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Profesores
WHERE bActivo = 1 AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 2 AND idOriginal = dbo.Cat_Profesores.idProfesor)
--ALUMNOS
INSERT INTO dbo.Cat_BitacoraUsuarios
( idOriginal ,
iTipoUsuario ,
sNombre ,
sObservaciones ,
dfecha
)
SELECT idAlumno, 3 AS iTipoUsuario, (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre) AS sNombre , ('Matricula|' + sMatricula + '|') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Alumnos
WHERE NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 3 AND idOriginal = dbo.Cat_Alumnos.idAlumno)
--FAMILIARES
INSERT INTO dbo.Cat_BitacoraUsuarios
( idOriginal ,
iTipoUsuario ,
sNombre ,
sObservaciones ,
dfecha
)
SELECT idFamiliar, 4 AS iTipoUsuario, (sApellidoP + ' ' + sApellidoM + ' ' + sNombre) AS sNombre , ('Familiar') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Ctrl_Familiares
WHERE bActivo = 1 AND sNombre IS NOT NULL AND sNombre NOT LIKE '' AND idNombramiento IS NOT NULL
AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 4 AND idOriginal = dbo.Ctrl_Familiares.idFamiliar)