Ayuda con un insert - select

27/11/2006 - 16:23 por jpablos | Informe spam
Saludos .

Yo tenia una instruccion sql de la siguiente manera:

declare @codigo_empresa_origen numeric,
@codigo_empresa_destino numeric

select @codigo_empresa_origen = 1, @codigo_empresa_destino = 148

insert into
gtge_personas(codigo_empresa,identificacion,nombre,tipo_identificacion)
select @codigo_empresa_destino,a.identificacion,a.nombre,a.tipo_identificacion
from gtge_personas a
where a.codigo_empresa = @codigo_empresa_origen
and not exists(select b.identificacion from gtge_personas as b where
b.codigo_empresa = @codigo_empresa_destino and b.identificacion =
a.identificacion)
order by a.nombre

Que lo que hacia es insertarme en la tabla gtge_personas todas las personas
que estaban en la empresa origen y que no se encontraban en la empresa de
destino, el codigo de las personas era de tipo identity por lo que al
insertarse se incrementaba en uno automaticamente, pero se hicieron cambios
en las tablas y el campo que antes era identity ahora ya no lo es por lo que
cuando se crea una persona se busca el maximo codigo y se le suma 1, como
puedo hacer en el select de arriba se inserte el codigo de la persona que
antes era de tipo identity y ahora no lo es ?????

Gracias ..
 

Leer las respuestas

#1 Alejandro Mesa
27/11/2006 - 17:04 | Informe spam
jpablos,

Ese es uno de los contras que se tiene cuando se usa una columna que se
numera mediante un procedimiento almacenado, se pierde la posibilidad de
hacer inserciones en masa. La unica forma sera insertarlos de uno en uno,
fila a fila, usando un cursor o un lazo.

AMB


"jpablos" wrote:

Saludos .

Yo tenia una instruccion sql de la siguiente manera:

declare @codigo_empresa_origen numeric,
@codigo_empresa_destino numeric

select @codigo_empresa_origen = 1, @codigo_empresa_destino = 148

insert into
gtge_personas(codigo_empresa,identificacion,nombre,tipo_identificacion)
select @codigo_empresa_destino,a.identificacion,a.nombre,a.tipo_identificacion
from gtge_personas a
where a.codigo_empresa = @codigo_empresa_origen
and not exists(select b.identificacion from gtge_personas as b where
b.codigo_empresa = @codigo_empresa_destino and b.identificacion =
a.identificacion)
order by a.nombre

Que lo que hacia es insertarme en la tabla gtge_personas todas las personas
que estaban en la empresa origen y que no se encontraban en la empresa de
destino, el codigo de las personas era de tipo identity por lo que al
insertarse se incrementaba en uno automaticamente, pero se hicieron cambios
en las tablas y el campo que antes era identity ahora ya no lo es por lo que
cuando se crea una persona se busca el maximo codigo y se le suma 1, como
puedo hacer en el select de arriba se inserte el codigo de la persona que
antes era de tipo identity y ahora no lo es ?????

Gracias ..

Preguntas similares