tengo una base de datos en sql server 2000.
tengo en un Store Procedure (sp) un insert asi:
Código:
observen que tenemos un total de 14 campos que se insertan, pero esta table tiene 15 porque uno es identity, el identity estaria entre @obs y tipoprecio por lo cual en este insert no se indica porque es identity, el mismo server lo sabe, ahora bien, observen este insert a la misma tabla pero en otro SP--Cargamos en historial de facturas(contenido) insert into h_facturas_contenido select @maquina,@nf,getdate(),codigo, cant,descripcion,unitario,totales, @dias,dbo.nombre_cliente(@idcliente), dbo.direccion_cliente(@idcliente), @guia,@obs,tipoprecio from factura_temp where maquina=@maquina
Código:
observen que entre las variables (que tienen datos) @obs y @tp tampoco pongo algo para el identity dado que "supuestamente" el server inserta el numero que sigue, bien, este ultimo insert no anda porque cuando quiero grabar el SP me dice que el insert tiene menos campos que los que tiene la tabla, pero si entre las variables @obs y @tp pongo asi: @obs,0,@tp para indicar el identity , me dice :insert into h_facturas_contenido values( @maquina,@numero,@fecha,@codigo,@cant,@descrip,@unitario,@totales, @dias,@nombre,@direccion,@guia,@obs,@tp )
An explicit value for the identity column in table 'h_facturas_contenido' can only be specified when a column list is used and IDENTITY_INSERT is ON.
entonces no entiendo porque en un SP anda y en otro no!!! y no comprendo ese mensaje en ingles.
Alguna idea?