devolver un dato en un sp

16/03/2005 - 16:40 por Omar Flores | Informe spam
Hola a todos, espero y alguien me pueda ayudar con esto, tengo el siguiente
sp.

CREATE PROCEDURE dbo.sp_GuardaSalida
@unidad int,
@tanque int,
@elaboro varchar (30),
@observaciones varchar (50)
AS
BEGIN
INSERT INTO almacen_salida (cveunidad, cve_tanque, elaboro, observaciones)
VALUES (@unidad, @tanque, @elaboro, @observaciones)
END

En la tabla a la cual estoy introduciendo datos tiene un campo que es
"id_salida" que es de tipo identidad (1,1) y necesito que este sp me
devuelva el valor de ese campo al momento de la nueva inserción del registro
para yo poder manipularlo en mi aplicación.

Qué debeo de hacer para esto?

Muchas gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
16/03/2005 - 16:48 | Informe spam
Usa la funcion @@IDENTITY. Un ejemplo de los Books Online (BOL):

INSERT INTO jobs (job_desc,min_lvl,max_lvl) VALUES ('Accountant',12,125)

SELECT @@IDENTITY AS 'Identity'

Para retornar el valor desde el sproc, puedes usar un argumento de tipo
OUTPUT o retornarlo en la RETURN. Normalmente es buena practica usar el
RETURN solamente para responder si el sproc termino correctamente o no.

Gustavo Larriera
Uruguay LatAm
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Blog: http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Omar Flores" wrote in message news::

Hola a todos, espero y alguien me pueda ayudar con esto, tengo el siguiente
sp.

CREATE PROCEDURE dbo.sp_GuardaSalida
@unidad int,
@tanque int,
@elaboro varchar (30),
@observaciones varchar (50)
AS
BEGIN
INSERT INTO almacen_salida (cveunidad, cve_tanque, elaboro, observaciones)
VALUES (@unidad, @tanque, @elaboro, @observaciones)
END

En la tabla a la cual estoy introduciendo datos tiene un campo que es
"id_salida" que es de tipo identidad (1,1) y necesito que este sp me
devuelva el valor de ese campo al momento de la nueva inserción del registro
para yo poder manipularlo en mi aplicación.

Qué debeo de hacer para esto?

Muchas gracias por su ayuda.
Respuesta Responder a este mensaje
#2 Alejandro Mesa
16/03/2005 - 17:05 | Informe spam
Omar,

Crea un parametro de salida y asignale el valor de la funcion
SCOPE_IDENTITY. Si la tabla no tiene asociado un trigger que a su vez
inserte en otra tabla que contenga una columna IDENTITY, entonces puedes usar
tambien @@IDENTITY. Ve los libros en linea para mas informacion sobre estas
funciones.

CREATE PROCEDURE dbo.sp_GuardaSalida
@unidad int,
@tanque int,
@elaboro varchar (30),
@observaciones varchar (50),
@new_identity int output
AS
set nocount on

declare @error int

INSERT INTO almacen_salida (cveunidad, cve_tanque, elaboro, observaciones)
VALUES (@unidad,@tanque,@elaboro,@observaciones)

select @error = @@error, @new_identity = scope_identity()

return @error
go

declare @i int
declare @rv int

exec @rv = dbo.sp_GuardaSalida 1, 2, 'a', 'a', @i output

select @rv, @i
go


AMB


"Omar Flores" wrote:

Hola a todos, espero y alguien me pueda ayudar con esto, tengo el siguiente
sp.

CREATE PROCEDURE dbo.sp_GuardaSalida
@unidad int,
@tanque int,
@elaboro varchar (30),
@observaciones varchar (50)
AS
BEGIN
INSERT INTO almacen_salida (cveunidad, cve_tanque, elaboro, observaciones)
VALUES (@unidad, @tanque, @elaboro, @observaciones)
END

En la tabla a la cual estoy introduciendo datos tiene un campo que es
"id_salida" que es de tipo identidad (1,1) y necesito que este sp me
devuelva el valor de ese campo al momento de la nueva inserción del registro
para yo poder manipularlo en mi aplicación.

Qué debeo de hacer para esto?

Muchas gracias por su ayuda.



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