id automaticos

11/01/2005 - 14:01 por Luis Ormeño | Informe spam
Hola a todos

Dentro de un sp cuando se realiza un insert a una tabla q tiene un campo id
automatico, es posible optener ese numero en ese momento; yo opto por
realizar un max del campo en el mismo sp, ya q debo retornar este valor al
programa del cliente. pero hay otra manera?

Luis Ormeño
Lima - Peru

Preguntas similare

Leer las respuestas

#11 Manuel Vera
12/01/2005 - 17:51 | Informe spam
Yo creo que el caso del trigger que se referencia en laa ayuda es si en el
trigger tienes dos tablas con campo identity y la segunda haga un insert
dentro del trigger. En ese caso el valor @@identity es de la segunda tabla y
no de la tabla que disparó el trigger.

Por ejemplo
Una tabla de PRODUCTOS con un trigger

create trigger tgPRODUCTOS_INSERT as INSERT
...aqui las instrucciones
...grabo en un log , que se yo, le fecha de insercion
... insert into log_productos (fecha) values (getdate())
...y esta tabla tiene un campo identity, entocnes
... @@identity = log_productos."nuevo_id"
... pues la varible @@identity es global
go

Salu2
MV

"Paulino Padial" wrote in message
news:eNQ5ACA%
es mas, en los bol dice:
Si la instrucción activa uno o más desencadenadores que realizan


inserciones
que, a su vez, generan valores de identidad, al invocar @@IDENTITY
inmediatamente después de la instrucción se obtiene el último valor de
identidad generado por los desencadenadores.
usea que si hago un insert, y un trigger inserta tb en la tabla, ( algo


raro
xD) me daria el del trigger, asi mira,
agregando a mi ejemplo anterior hago esto

create trigger escopetg on escope
after insert
as
insert into escope default values

y ahora ejecuto esto
insert into escope default values
select @@identity
usea, que no me esta dando el que yo keria, que podria ser insertar un
usuario! :P eso es muy logico, pero lo que kiero decir que no es


totalmente,
efectivo, en algunos casos :S

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"Manuel Vera" escribió en el mensaje
news:uZMlIn$
> Paulino...
>
> Yo tenía entendido que el @@identity era exclusivo de la sesión activa.


Es
> decir, que el ultimo valor que trae es del usuario propietario de la
> conexión actual, impidiendo de esta forma que haya problemas de


integridad
o
> conistencia.
> Por favor, corrígeme si me equivoco.
>
> Salu2
> MV
>
> "Paulino Padial" wrote in message
> news:eHVbO3%
> > @@identity, tienen algunos problemas, porque guarda el ultimo valor,
> > insertado.. entonces, si alguien a la vez insertapodrias pillar su
> valor...
> >
> > __________________________________________
> >
> > Paulino Padial López
> > Murcia - España
> >
> > Microsoft SQL-Server Administrator.
> > Microsoft Certified Solution Developer
> > Microsoft Certified Trainer
> > Oracle Certified Asociate
> > __________________________________________
> > "Luis Ormeño" escribió en el mensaje
> > news:
> > > Hola a todos
> > >
> > > Dentro de un sp cuando se realiza un insert a una tabla q tiene un
campo
> > id
> > > automatico, es posible optener ese numero en ese momento; yo opto


por
> > > realizar un max del campo en el mismo sp, ya q debo retornar este
valor
> al
> > > programa del cliente. pero hay otra manera?
> > >
> > > Luis Ormeño
> > > Lima - Peru
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida