Tercera Entrada de la Bitácora (7/6/2026)

Hora de inicio 1: ~4:00 pm (7/6/26)

Hora de fin 1: ~7:00 pm (7/6/26)

Cantidad de horas trabajadas: ~3

Continuando mi trabajo en el trigger y los SPs, lo primero fue informarme sobre cómo funcionan y cómo se utilizan los triggers, usé los mismos enlaces de referencia que dejé anteriormente, y para el funcionamiento tuve que investigar algunas cosas, la primera incógnita fue cómo emparejar cada empleado insertado con cada deducción obligatoria. Aquí me surgió una duda, el profesor menciona en el archivo que la única deducción obligatoria es la 'de ley' (10.67%) y que por ende se alarma, y esto tiene sentido sobre la carga de datos del XML, técnicamente sí es la única obligatoria, pero con los últimos datos que nos dieron, el porcentaje no es 10.67%, así que alambrar el 10.67% en el trigger no tendría mucho sentido, por lo que me puse a buscar cómo conectar tablas que no tienen valores en común (Empleado y DeduccionLey en este caso), el profe en una clase reciente mencionó el CROSS JOIN, y es algo que no había utilizado antes, pero es algo que encontré justamente en este link como el primer método recomendado para combinar tablas que no tienen una columna en común: https://www.geeksforgeeks.org/sql/sql-query-to-combine-two-tables-without-a-common-column/, así que se me hizo bastante claro que lo mejor sería usar eso.

Habiendo hecho eso, entonces la siguiente incógnita era cómo aplicar esta inserción únicamente sobre cada empleado insertado, inicialmente pensé en que quizás tenía que usar una tabla parámetro, pero eso no tenía sentido porque los triggers no tienen parámetros, entonces pensé en una tabla temporal, pero investigando al respecto encontré que SQL Server directamente ya hace algo así para utilizarse en los triggers, y esa es la tabla INSERTED: https://learn.microsoft.com/en-us/sql/relational-databases/triggers/use-the-inserted-and-deleted-tables?view=sql-server-ver17

Habiendo aprendido al respecto ya pude hacer el trigger, que no estoy seguro si funciona, porque no tengo mi computadora normal de momento, así que no tengo acceso al servidor de SQL, pero entonces por ahora lo que hice fue hacer el trigger, y replantearme partes de la estructura de las tablas que me parecieron innecesarias, inicialmente había pensado en tener campos específicos para cómo eran los atributos antes y después en cosas como modificar empleado, etc, pero realmente es algo que simplemente puede ir en la descripción, y también se me había ido un montón de campos innecesarios en otras tablas porque las había copiado y pegado mientras las iba haciendo, y luego se me olvidó borrarlas, entonces quité esos campos, y por último cambié algunos de los valores de VARCHAR.


Comments

Popular posts from this blog

Primera Entrada de la bitácora (5/6/26)