SQL Server - Select que llame SP

 
Vista:
sin imagen de perfil

Select que llame SP

Publicado por L.Barzi (6 intervenciones) el 09/08/2006 16:03:05
Hola a todos, una pregunta se puede dentro de una select llamar una Store Procedure, ejemplo hago un select que muestre el codigo de personal, luego deseo agregarle un store procedure(SP) en donde le paso como paramentro ese codigo de personal. Se puede eso?

Tabla_Personal
---------------------
001 jorge
002 carlos

ALGO ASI QUISIERA

SELECT codigo_personal , EXEC sp_nombre(codigo_personal)
FROM Tabla_Personal

Gracias
Saludos Lima - Perú
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Select que llame SP

Publicado por Isaías (3308 intervenciones) el 09/08/2006 17:55:19
No puedes llamar a un select, pero definitivamente si puedes ejecutar una FUNCION (udf), que haga el trabajo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Select que llame SP

Publicado por L.Barzi (6 intervenciones) el 09/08/2006 18:01:19
No se puede ejecutar desde un Select un SP estaba intentando de la sgte manera:

CREATE PROCEDURE DBO.sp_NAME
@CodigoPersonal VARCHAR(4)
AS
SELECT primer_apellido, segundo_apellido
FROM personal
WHERE Codigo_Personal = @CodigoPersonal
--
--Resultado:
EXEC DBO.sp_NAME '0004'
--

--Intentando:
SELECT Codigo_Personal, (EXEC sp_NAME Codigo_Personal)
FROM Personal

/*Hacer que EXEC sp_NAME (Codigo_Personal) sea como 2 campo en ese select
no se si se podra o pido mucho quizas me pueden seguir dando ideas
gracias..! */

Pero como podria hacer como tu me dices..??

Gracias de Antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Gracias utilice FUNCTION

Publicado por L.Barzi (6 intervenciones) el 09/08/2006 18:29:54
Gracias nuevamente amigo Isaías, chekeando sobre FUNCTION en la web di con la solucion, pero una consulta, que diferencia hay entre usar Function's y Store Procedures las ventajas y desventajas de ambos..

Gracias de Antemano
Saludos de Lima - Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias utilice FUNCTION

Publicado por Isaías (3308 intervenciones) el 09/08/2006 21:44:01
Bueno, que las UDF (Introducidas a partir de la version 2000), son algo que los desarrolladores en SQL estaban esperando, por ejemplo.

No puedes hacer llamar a un STORE en un SELECT

SELECT ID, NOMBRE, EXEC PR_PROCEDURE area
FROM MYTABLA

Pero, si puedes llamar a una funcion que te obtenga el nombre del AREA

SELECT ID, NOMBRE, dbo.fn_ObtenNombreArea(area)
FROM MYTABLA

Otro ejemplo, muchos desarrolladores quieren trabajar con el resultado del SELECT de un STORE, para esto, solo les queda hacer un INSERT en una tabla temporal.

CREATE TABLE #MyTabla (ID int, Nombre VARCHAR(50), Sueldo Money)
INSERT INTO #MyTabla
EXEC PR_SACAMISDATOS 23456

En cambio con una fucion que te regresa una TABLA

SELECT SUELDO * 1.5/100 FROM dbo.fn_ObtenDatosEmpleado(23456)

Creo que debe haber muchas mas, solo que los desarrolladores en SQL Server actuales, desconocen el uso de FUNCIONES (udf).

Saludos desde México, Capital
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Gracias por la explicacion

Publicado por L.Barzi (6 intervenciones) el 10/08/2006 00:22:05
Gracias Isaias..!

Saludos buen dia
Lima - Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias utilice FUNCTION

Publicado por Isaias (3308 intervenciones) el 22/08/2006 19:04:21
Hola

Un procedimiento, no puede ser invocado en un SELECT, ejemplo

-- No funcionara
SELECT COL1, EXEC PR_PROC (COL2)
FROM TABLA

-- Si funcionara
SELECT COL1, dbo.fn_MyFuncion(col2)
FROM TABLA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar