none
Error: Instrucción INSERT en conflicto con la restricción FOREIGN KEY RRS feed

  • Pregunta

  • Hola necesito ayuda con mi base de datos me aparece este error al querer insertar un Ingreso de productos

    El error que me aparece es: Instrucción INSERT en conflicto en conflicto con la restricción FOREIGN KEY FK_ingreso_proveedor. El conflicto ah aparecido en la base de datos "dbgimnasio" tabla 'dbo.proveedor', column 'idproveedor' . Se terminó la instrucción.

    Este es mi procedimiento almacenado para insertar un Ingreso:

    @idingreso int=null output,
    @idproveedor int,
    @idtrabajador int,
    @fechaingreso date,
    @estado varchar(10)
    as
    insert into ingreso(idproveedor,idtrabajador,fechaingreso,estado)
    values (@idproveedor,@idtrabajador,@fechaingreso,@estado)
    --obtener codigo autogenerado

    set @idingreso=@@IDENTITY

    mis tablas son

    Ingreso Proveedor

    idingreso int pk idproveedor int pk

    idproveedor int razon_social varchar(50)

    idtrabajador int direccion varchar(50)

    fechaingreso date telefono varchar(50)

    estado varchar(10) email varchar(50)



    todavía no puedo adjuntar imágenes gracias.


    martes, 4 de octubre de 2016 21:02

Respuestas

  • Rafael Eduardo Montero,

    El mensaje de error es claro: estás intentando ingresar un valor para la columna 'idproveedor' (tabla [Ingreso]) que no existe en la tabla referenciada [Proveedor]. 

    Valida que el valor que intentas ingresar (para la columna 'idproveedor') exista en la tabla [Proveedor].

    De manera adicional, el número generado por el atributo IDENTITY() se recupera mediante la función SCOPE_IDENTITY(), no @@IDENTITY.

    SET @idingreso = SCOPE_IDENTITY();


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 4 de octubre de 2016 21:35
  • Ya solucioné el inconveniente, me olvidaba de ingresar el 'idtrabajador' que lo tomo del logueo del trabajador y me repercutía en proveedor :S y buscaba el error en proveedor jaja gracias por tu tiempo igual.
    miércoles, 5 de octubre de 2016 17:08

Todas las respuestas

  • Rafael Eduardo Montero,

    El mensaje de error es claro: estás intentando ingresar un valor para la columna 'idproveedor' (tabla [Ingreso]) que no existe en la tabla referenciada [Proveedor]. 

    Valida que el valor que intentas ingresar (para la columna 'idproveedor') exista en la tabla [Proveedor].

    De manera adicional, el número generado por el atributo IDENTITY() se recupera mediante la función SCOPE_IDENTITY(), no @@IDENTITY.

    SET @idingreso = SCOPE_IDENTITY();


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 4 de octubre de 2016 21:35
  • Ya solucioné el inconveniente, me olvidaba de ingresar el 'idtrabajador' que lo tomo del logueo del trabajador y me repercutía en proveedor :S y buscaba el error en proveedor jaja gracias por tu tiempo igual.
    miércoles, 5 de octubre de 2016 17:08
  • tengo el mismo problema en que parte del codigo solucionaste lo del idtrabajador del logueo
    lunes, 26 de marzo de 2018 4:34
  • Hola LeoHerrera:

    Porque no abres otro post, y pegas el codigo de tu procedimiento almacenado, indicando el error que te sugiere el Sql y así, seguro que alguien puede echarte un cable con precisión.

    Saludos

    lunes, 26 de marzo de 2018 4:54