Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Insert que me tiene loco (SQL Server 2000)

Estas en el tema de Insert que me tiene loco (SQL Server 2000) en el foro de Bases de Datos General en Foros del Web. Hola, tengo una base de datos en sql server 2000. tengo en un Store Procedure (sp) un insert asi: Código: --Cargamos en historial de facturas(contenido) ...
  #1 (permalink)  
Antiguo 26/05/2005, 02:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 258
Antigüedad: 20 años, 1 mes
Puntos: 1
Desacuerdo Insert que me tiene loco (SQL Server 2000)

Hola,

tengo una base de datos en sql server 2000.

tengo en un Store Procedure (sp) un insert asi:

Código:
--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
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
Código:
insert into h_facturas_contenido
values(
@maquina,@numero,@fecha,@codigo,@cant,@descrip,@unitario,@totales,
@dias,@nombre,@direccion,@guia,@obs,@tp
)
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 :
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?
__________________
Salute !!!
RollBack
  #2 (permalink)  
Antiguo 26/05/2005, 02:42
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
Cambia la forma de hacer el insert, utiliza los nombres destino de los campos, te evitarás problemas, aunque cueste un poco más escribir la SELECT

insert into h_facturas_contenido (Campo1, Campo2, ... Campon)
SELECT...

Un saludo
  #3 (permalink)  
Antiguo 26/05/2005, 03:03
 
Fecha de Ingreso: octubre-2004
Mensajes: 258
Antigüedad: 20 años, 1 mes
Puntos: 1
Solucionado, gracias por responder.
Saludos!!!!!
__________________
Salute !!!
RollBack
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.