Obtener valor Identity insertado.

09/04/2007 - 17:30 por solusoft | Informe spam
Hola a todos,

es una pregunta general, para este caso. Se tiene una tabla con un campo
identity que es clave. Se inserta un registro, y por tanto se autogenera el
valor del identity.

La cuestión es saber de manera fiable el valor de identity que se ha
insertado en la última operación INSERT.
Se supone que se está en un entorno multiusuario.

En este caso, para Sql SERVER, cuál sería la opción más aceptable, no sé si
habrá una infalible para averiguar el Identity que se haya insertado.

Miguel Egea escribió un artículo sobre ello pero no tengo su referencia, si
alguien la conoce...

Ustedes cuál utilizan ?

Saludos y gracias de antemano.
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 Penta
09/04/2007 - 17:39 | Informe spam
Hola.
Si quisieras hacer un update o un select a dicho dato (la idea es que
sea unico) cuales campos usuarias ?? cuando tengas la respuesta,
tendras la solucion para tu pregunta.


Salu2.
Penta.
Respuesta Responder a este mensaje
#2 Alejandro Mesa
09/04/2007 - 17:58 | Informe spam
solusoft,

Depende a que te refieres cuando dices "en la última operación INSERT".
Recuerda que la tabla donde se inserta puede tener al trigger asociado y que
este trigger puede a su vez insertar en otra tabla. Por eso T-SQL cuenta con
diferentes funciones relacionadas con "identity".

- SCOPE_IDENTITY (ultimo dentro del mismo alcance)
- @@IDENTITY (ultimo identity insertado dentro de la sesion)
- IDENT_CURRENT (ultimo identity insertado en la tabla)

Ejemplo:

create table dbo.t1 (
c1 int not null identity(1, 1)
)
go

create table dbo.t2 (
c1 int not null identity(1000, 1)
go

create trigger tr_t1_ins on dbo.t1
for insert
as
set nocount on

insert into dbo.t2 default values
go

insert into dbo.t1 default values

select @@identity, scope_identity()
go

drop table dbo.t1, dbo.t2
go


AMB

"solusoft" wrote:

Hola a todos,

es una pregunta general, para este caso. Se tiene una tabla con un campo
identity que es clave. Se inserta un registro, y por tanto se autogenera el
valor del identity.

La cuestión es saber de manera fiable el valor de identity que se ha
insertado en la última operación INSERT.
Se supone que se está en un entorno multiusuario.

En este caso, para Sql SERVER, cuál sería la opción más aceptable, no sé si
habrá una infalible para averiguar el Identity que se haya insertado.

Miguel Egea escribió un artículo sobre ello pero no tengo su referencia, si
alguien la conoce...

Ustedes cuál utilizan ?

Saludos y gracias de antemano.
www.trabajobasura.com/solusoft
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida