none
Realizar insercion a dos tablas relacionadas RRS feed

  • Pregunta

  • 

    Tengo las siguientes tablas:

    Necesito saber como hacer una inserción a esas dos tablas, de forma que el id_empleado de la tabla tbl_empleado se inserte también en la otra tabla tbl_usuario.

    Se me ocurrió intentarlo con un procedimiento almacenado, pero me complique, cuando recordé el id, ya que es un campo que se autogenera. Pense que podía usar ident_current para obtener el ultimo id insertado el la tabla empleado, y luego insertarlo en la tabla de usuario, pero no se como hacerlo. Así que agradecería mucho la ayuda con este problema. Gracias de antemano.

    sábado, 17 de septiembre de 2016 12:04

Respuestas

  • Chris_Vidal,

    Hubiese sido conveniente comentar donde es que has tenido problemas para precisar en ese punto. Te dejo la estructura del procedimiento almacenado que deberías considerar:

    CREATE PROCEDURE dbo.InsertarUsuario
        @empl_nombre nvarchar(100),
        @usu_nombre nvarchar(100) /*, demás parámetros*/
    AS
    BEGIN
        BEGIN TRANSACTION;    
        BEGIN TRY  
    	   INSERT INTO tbl_Empleado (empl_nombre)
    	   VALUES (@empl_nombre)
    
    	   DECLARE @id_empleado int = SCOPE_IDENTITY();
    
    	   INSERT INTO tbl_usuario (id_empleado, usu_nombre)
    	   VALUES (@id_empleado, @usu_nombre)
        END TRY  
        BEGIN CATCH  
    	   SELECT ERROR_MESSAGE()
      
    	   IF @@TRANCOUNT > 0  ROLLBACK TRANSACTION;  
        END CATCH
      
        IF @@TRANCOUNT > 0  COMMIT TRANSACTION;  
    END
    GO  
    


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Edu Martinez sábado, 17 de septiembre de 2016 23:31
    • Marcado como respuesta Chris_Vidal domingo, 18 de septiembre de 2016 21:05
    sábado, 17 de septiembre de 2016 14:51