resultado de un SP a una variable...

29/08/2007 - 13:51 por GoG | Informe spam
Hola a todos,

Necesito guardar el resultado de la ejecucion de un SP en una variable.

En pruebas que he realizado es:

DECLARE @colectivo int
DECLARE @NIF varchar(20)
SET @NIF='11111111A'
EXEC @Colectivo= usp_Obtener @NIF

Pero he observado que mientras el procedimiento me devuelve el valor 16 (si
ejecuto directamente exec usp_Obtener @NIF) , en la variable se asigna el
valor 0

A alguien se le ocurre que puede estar pasando??

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
29/08/2007 - 13:59 | Informe spam
Porque a @Colectivo le estás asignando el valor de retorno del
procedimiento almacenado. Lo que tú buscas es parámetros de salida; echa un
vistazo en los BOL al formato de uso de los parámetros de salida

"GoG" escribió en el mensaje
news:u%
Hola a todos,

Necesito guardar el resultado de la ejecucion de un SP en una variable.

En pruebas que he realizado es:

DECLARE @colectivo int
DECLARE @NIF varchar(20)
SET @NIF='11111111A'
EXEC @Colectivo= usp_Obtener @NIF

Pero he observado que mientras el procedimiento me devuelve el valor 16
(si
ejecuto directamente exec usp_Obtener @NIF) , en la variable se asigna el
valor 0

A alguien se le ocurre que puede estar pasando??



Respuesta Responder a este mensaje
#2 Miguel Egea
29/08/2007 - 14:03 | Informe spam
Tienes que ver que pvale la variable lo que pones en Return, de todas formas
no es una buena idea usar los valores de retorno para devolver datos, es
mejor usar variables output como te escribo en el segundo ejemplo

ejemplo 1

create proc test (@id int)
as
begin
return 10
end
go
declare @dev int
exec @dev=test 1
select @dev

Ejemplo 2

go
drop proc test
go
create proc test (@id int,@valor int output)
as
begin
declare @error int
set @valor
set @error=@@error
return @error
end
go
declare @dev int,
@error int
exec @error= test 1,@dev output
if @error=0
select 'resultado ',@dev
else
select 'se ha producido un error'
go
drop proc test


Saludos
Miguel Egea


"GoG" wrote in message
news:u%
Hola a todos,

Necesito guardar el resultado de la ejecucion de un SP en una variable.

En pruebas que he realizado es:

DECLARE @colectivo int
DECLARE @NIF varchar(20)
SET @NIF='11111111A'
EXEC @Colectivo= usp_Obtener @NIF

Pero he observado que mientras el procedimiento me devuelve el valor 16
(si
ejecuto directamente exec usp_Obtener @NIF) , en la variable se asigna el
valor 0

A alguien se le ocurre que puede estar pasando??



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