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 Ele
27/11/2006 - 18:07 | Informe spam
a ver si entendi quieres que en el result se calcule el autoincremento
ya habian preguntado esto antes, dejame buscar la solucion que dieron,
aunque esto se puede hacer en un subselect (Select Count(*)from
gtge_personas c where c.identificacion <= b.identificacion)

"jpablos" escribió en el mensaje
news:
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