Entrada 7 (sp_GetEmpleadoById)
Fecha: 22/04/2026
Inicio: [23:00] | Fin: [23:27] || Total: [27 minutos]
Presentes: Sebastián Ramírez Abarca
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¿QUÉ HICIMOS HOY?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Se avanzó con los store procedures, se terminó y se probó en una copia local de la base de datos de la tarea el store procedure sp_GetEmpleadoById
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PROBLEMAS ENCONTRADOS Y CÓMO SE RESOLVIERON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Bloqueo haciendo el store procedure pues no recordaba como obtener el nombre del puesto con el idPuesto desde el SELECT a dbo.Empleado.
Se resolvió haciendo búsqueda en internet sobre cómo hacerlo y era hacer INNER JOIN.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DUDAS Y DIVERGENCIAS DE CRITERIO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. La única duda fue como obtener el nombre del puesto con el idPuesto desde el SELECT a dbo.Empleado.
2. No hubo divergencias de criterio en esta sesión.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AVANCE DEL CÓDIGO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
sp_GetEmpleadoById:
USE VacacionesDB;
GO
-- =====================================================
-- SP: Obtener un empleado por ValorDocumentoIdentidad
-- =====================================================
DROP PROCEDURE IF EXISTS sp_GetEmpleadoById;
GO
CREATE PROCEDURE sp_GetEmpleadoById
@inValorDocumentoIdentidad VARCHAR(32)
, @outResultCode INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
-- Devuelve la información del empleado activo que coincide con ValorDocumentoIdentidad
SELECT
e.ValorDocumentoIdentidad
, e.Nombre
, e.idPuesto
, p.Nombre AS NombrePuesto
, e.FechaContratación
, e.SaldoVacaciones
, e.EsActivo
FROM dbo.Empleado e
INNER JOIN Puesto p ON e.idPuesto = p.id
WHERE ValorDocumentoIdentidad = @inValorDocumentoIdentidad
AND EsActivo = 1
-- No hubo errores
SET @outResultCode = 0;
END TRY
BEGIN CATCH
INSERT INTO DBError (UserName, Number, State, Severity, Line, [Procedure], Message, DateTime)
Values(
SYSTEM_USER
, ERROR_NUMBER()
, CAST(ERROR_STATE() AS VARCHAR(32))
, CAST(ERROR_SEVERITY() AS VARCHAR(32))
, ERROR_LINE()
, ISNULL(ERROR_PROCEDURE(), 'sp_GetEmpleadoById')
, ERROR_MESSAGE()
, GETDATE()
);
SET @outResultCode = 50008;
END CATCH
END;
GO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MORALEJAS / BUENAS PRÁCTICAS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Solo una moraleja a convertir en buena práctica: al usar una nueva forma de hacer una acción apuntarla por si se olvida más adelante revisar si existe algo con lo que hacer lo que quiero lograr.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRÓXIMA SESIÓN: ¿QUÉ SIGUE?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Realizar sp_UpdateEmpleado para actualizar información de empleados.
Comentarios
Publicar un comentario