PDA

Ver la Versión Completa : Insert, select


bosterito
31-07-2008, 20:46:16
Buenas a todos.
Tengo una duda que me tiene mal. Quiero hacer un insert con un select, pero, que no se copie todos los datos. Por ejemplo
Código SQL [-] (http://www.clubdelphi.com/foros/#)insert into cajanueva select *from caja where fecha='2008-07-31' and factura='0005000214'


El asunto es que la tabla caja tiene un campo id, y no se le puede transferir a la tabla cajanueva, porque el valor de este campo se genera automáticamente. Por eso, lo que quiero, es copiar todos los valores de los campos de caja a cajanueva, a excepción del campo id.

Saludos:)

jcarteagaf
31-07-2008, 21:04:50
insert
(campo1,campo2,....campoN)
select campo1,campo2,....campoN)
from Tabla
where <condicion>

Saludos

javier7ar
31-07-2008, 21:11:29
si estas trabajando con SQL Server, podes activar la inserccion de columnas de identidad:


SET IDENTITY_INSERT cajanueva ON

/* aca pones el insert que tenes */

SET IDENTITY_INSERT cajanueva OFF


eso te va a permitir insertar valores en la columna que es identidad
Saludos

tcp_ip_es
04-08-2008, 12:29:28
como dice jcarteagaf es correcto es decir :

insert into cajanueva (todos los campos) select todos los campos sin id from caja
Si fuera al contrario podrías ahorrarte código es decir si en la tabla que insertas tuviese un campo más de la tabla que te traes los datos, ya que podríamos usar el comodín *, sería asi..

insert into cajanueva select x as id,* from caja