PDA

Ver la Versión Completa : Ejecutar SP en Vista


cso2000
09-02-2005, 21:10:17
Saludos a Todos:

Tengo un problema con una vista en SQL Server, el caso es que de una consulta ocupo que uno de los campos obtenga el valor de ejecutar un Stored Procedure algo asi:



Create view MiVista
AS
Select
Identificador,
Resultado = ( EXEC SP_CalculaResultado Identificador )
From MiTabla



No se si esto sea posible, espero que me puedan ayudar si es que tengo un error en la implementacion o si puedo hacer esto de otra forma.

Gracias de Antemano

maeyanes
09-02-2005, 21:35:32
Prueba con:


Create view MiVista
AS
Select
Identificador,
( select * from SP_CalculaResultado (parámetros) ) as Resultado
From MiTabla



Saludos...

cso2000
09-02-2005, 21:56:54
Gracias por responder MAEYANES

probe tu sugerencia y me genera este error

Invalid object name 'SP_CalculaResultado'

No se que pueda ser

maeyanes
09-02-2005, 22:13:53
Como se llama el parámetro de salida de tu procedimiento? Trata de usarlo en vez del *; otra cosa, tiene rato que no uso MS SQL Server, por lo que la sintaxis para llamar a un procedimiento vía un select a lo mejor no es la misma y no la recuerdo...

Otra cosa que podrías intentar, y no estoy seguro que funcione sería llamarlo con el EXEC, pero así:


Create view MiVista
AS
Select
Identificador,
( EXEC SP_CalculaResultado Identificador ) as Resultado
From MiTabla

Saludos...

cso2000
09-02-2005, 22:24:33
Gracias de nuevo,

ya probe lo que me recomendaste y no logro hacer que funcione, de cualquier forma estoy investigando lo de la sintaxis

Gracias

cso2000
10-02-2005, 00:29:57
Ya resolvi parte del problema:


Create view MiVista
AS
Select
Identificador,
( select * from SP_CalculaResultado (parámetros) ) as Resultado
From MiTabla


Cambie el SP por una Funcion que me regresa un objeto de tipo tabla y funciona bien en este contexto



select * from SP_CalculaResultado ( 1154 )



donde 1154 es el parametro que ocupo.

solo que en la vista tengo el siguiente error


Create view MiVista
AS
Select
Identificador,
( select * from SP_CalculaResultado (t.CampoId) ) as Resultado
From MiTabla


me genera un error en la parte de los parametos.
prove varias formas de pasarle el parametro y nada me funciono

lo curioso es que de esta forma si funciona


Create view MiVista
AS
Select
Identificador,
( select * from SP_CalculaResultado (1154) ) as Resultado
From MiTabla


La cosa es que asi no me sirve por que yo ocupo que la llamada a la funcion se ejecute con el parametro del campo id del registro en curso

Si tienen alguna idea les agrdesco que me la comenten.

Saludos.