none
Problema con IDENTITY_INSERT es OFF RRS feed

  • Pregunta

  • Hola tengo un campo auto numérico como clave primaria pero me tilde un error cuando hago un insert

    Este es el error en SQL SERVER

    Mens 544, Nivel 16, Estado 1, Procedimiento sp_AltaPedido, Línea 11
    No se puede insertar un valor explícito en la columna de identidad de la tabla 'Pedido' cuando IDENTITY_INSERT es OFF.
    -2

          

    Procedure

    create proc sp_AltaPedido
    @codigo int ,
    @cedula nvarchar(50),
    @estado nvarchar(50),
    @total float
    AS

    begin

    insert into Pedido (IdPedido,Codigo,Cedula,Fecha,Total,Estado) values
    (@@IDENTITY,@codigo, @cedula,GETDATE(),@total,@estado)

    if @@ERROR<>0
    return -2
    else
    return 1
    end

    tabla

    create table Pedido
    (
    IdPedido int primary key identity (1,1) not null,
    Codigo int not null foreign key references Articulos(Codigo),
    Cedula nvarchar (50) not null foreign key references cliente(Cedula),
    Fecha datetime not null,
        Total float not null,
        Estado nvarchar(50),
       

    lunes, 16 de marzo de 2015 2:21

Respuestas

  • Hola Alexis,

    Tienes definido el campo [IdPedido] como IDENTITY (auto-numérico). Por ser un campo auto-numérico, el valor se genera automáticamente en la inserción, no debes insertar un valor explicito para la columna [IdPedido].

    create proc sp_AltaPedido
    @codigo int ,
    @cedula nvarchar(50),
    @estado nvarchar(50),
    @total float
    AS
    
    begin
    
    insert into Pedido (Codigo,Cedula,Fecha,Total,Estado) values
    (@codigo, @cedula,GETDATE(),@total,@estado)
    
    if @@ERROR<>0
    return -2
    else
    return 1
    end

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    • Marcado como respuesta Alexis2494 lunes, 16 de marzo de 2015 4:27
    lunes, 16 de marzo de 2015 4:05