Mensaje enviado por "Alberto M. Vernieri \(ar\)" <avernieri@interprov.com>
Hola!
Al final de tu procedure hace un SELECT @@IDENTITY y retornalo....
Saludos
Alberto
Mensaje enviado por "Alberto M. Vernieri \(ar\)" <avernieri@interprov.com>
Hola!
Simplemente, después de tu insert (pero en la misma transacción) ejecutá un "SELECT @@IDENTITY"
Saludos
Alberto
Mensaje enviado por Roberto Figueroa Garibay (fígaro) <figaro_foro@softhome.net>
Sin embargo ese valor también se encuentra en la variable @@IDENTITY.
En un ambiente multiusuario lo mejor sería que tuvieras un StoredProcedure que te inserte el registro y regrese el valor de esa variable.
Algo así:
Create Procedure InsertaRegistroTabla
@valor1 int, @valor2 int, ..., @valorN char(6)
AS
--La siguiente variable sería del mismo tipo que tu columna Autonumérica
-- Inicias una transacción
BEGIN TRAN
--Insertas los valores en la tabla
INSERT INTO TABLA VALUES(@valor1, @valor2, ..., @valorN)
IF (@@error <> 0)
BEGIN
-- si hubo error cancelas la transacción, y despliegas un mensaje de error
ROLLBACK TRANSACTION
raiserror('Error al insertar registro en ',16,1)
END
ELSE
BEGIN
-- si todo salió bien se acepta la transacción y se regresa el valor
@@IDENTITY
COMMIT TRAN
return @@identity
END
Saludos!!
Roberto Figueroa Garibay (fígaro)
roberto_figueroa@sinergia.com.mx
Sinergia Servicios
www.sinergia.com.mx
> -----Mensaje original-----
> Asunto: vb-esp : Tablas Inserted y Deleted
>
> El tema es el siguiente:
> En una Tabla determinada tengo un campo clave autonumérico
> quiero saber cuando inserto un registro en esta que valor toma
> ese campo, ese valor se encuentra en la tabla Inserted del SQL
> pero no se tomarlo desde Visual Basic.
>
> Espero me entiendan.
> Gracias
> Daniel
>