Principales respuestas
Como hacer un Union All con los result set de 2 store procedure...

Pregunta
-
Hola a todos, tengo 2 funciones similares "las funciones realizan varios querys, como cte y cosas asi, el query que pongo es solo de ejemplo"
CREATE FUNCTION [dbo].[fn_Obtener_Funcion_A]()
RETURNS TABLE
AS
RETURN
Select * From Cte;CREATE FUNCTION [dbo].[fn_Obtener_Funcion_B]()
RETURNS TABLE
AS
RETURN
Select * From Cte;Y tengo un store procedure el cual realizo un union entre ambaas funciones
Select * From dbo.fn_Obtener_Funcion_A
Union All
Select * From dbo.fn_Obtener_Funcion_B
Segun tengo entendido los store procedure son mejor a nivel de performance que las funciones, ya que lo mismo estan precompilados... Quiero cambiar las funciones por store procedure, pero no se como hacer para realizar 2 union all entre store procedure...
nota: por logica de negocio no puedo realziar un store procedure el cual por si solo hago el union all entre ambas tabla directamente...
Gracias a todos
Respuestas
-
Hasta donde sé las funciones también son compiladas y por lo tanto tienen planes de ejecución igualmente eficientes que las consultas de procedimientos almacenados. Siga usando las funciones.
Jose R. MCP
Code Samples- Marcado como respuesta Zr-.- sábado, 22 de septiembre de 2012 19:45
-
De acuerdo con webJose, puedes hacerlo con funciones o con procedimientos almacenados, anteriormente en otro hilo ( Resultado de un Procedure a un valor escalar ) preguntaron algo similar a lo que tu cuestionas ; te paso como pudieras unir 2 procedimientos:
declare @procedure1 table ( campo1 varchar(30),campo2 int ) declare @procedure2 table ( campo1 varchar(30),campo2 int ) insert into @procedure1 exec tuSP1 ; insert into @procedure2 exec tuSP2 ; select * from @procedure1 union select * from @procedure2;
No he probado el código, considero que no deberías tener problemas.
SALUDOS !
Sergio Sánchez Arias
- Marcado como respuesta Zr-.- sábado, 22 de septiembre de 2012 19:45
Todas las respuestas
-
Hasta donde sé las funciones también son compiladas y por lo tanto tienen planes de ejecución igualmente eficientes que las consultas de procedimientos almacenados. Siga usando las funciones.
Jose R. MCP
Code Samples- Marcado como respuesta Zr-.- sábado, 22 de septiembre de 2012 19:45
-
De acuerdo con webJose, puedes hacerlo con funciones o con procedimientos almacenados, anteriormente en otro hilo ( Resultado de un Procedure a un valor escalar ) preguntaron algo similar a lo que tu cuestionas ; te paso como pudieras unir 2 procedimientos:
declare @procedure1 table ( campo1 varchar(30),campo2 int ) declare @procedure2 table ( campo1 varchar(30),campo2 int ) insert into @procedure1 exec tuSP1 ; insert into @procedure2 exec tuSP2 ; select * from @procedure1 union select * from @procedure2;
No he probado el código, considero que no deberías tener problemas.
SALUDOS !
Sergio Sánchez Arias
- Editado Sergio S Arias sábado, 22 de septiembre de 2012 18:44
- Propuesto como respuesta Ronald Riveros [ronpy] sábado, 22 de septiembre de 2012 18:56
-
Hasta donde sé las funciones también son compiladas y por lo tanto tienen planes de ejecución igualmente eficientes que las consultas de procedimientos almacenados. Siga usando las funciones.
Hola, pense que no... Muchas gracias seguire con las funciones!!!
Jose R. MCP
Code Samples -
De acuerdo con webJose, puedes hacerlo con funciones o con procedimientos almacenados, anteriormente en otro hilo ( Resultado de un Procedure a un valor escalar ) preguntaron algo similar a lo que tu cuestionas ; te paso como pudieras unir 2 procedimientos:
declare @procedure1 table ( campo1 varchar(30),campo2 int ) declare @procedure2 table ( campo1 varchar(30),campo2 int ) insert into @procedure1 exec tuSP1 ; insert into @procedure2 exec tuSP2 ; select * from @procedure1 union select * from @procedure2;
No he probado el código, considero que no deberías tener problemas.
SALUDOS !
Sergio Sánchez Arias
- Marcado como respuesta Zr-.- sábado, 22 de septiembre de 2012 19:45