Mejorar procedimiento Sql

02/04/2006 - 10:39 por Eduardo Alvarado Meza | Informe spam
Deseo saber si hay algo para mejorar la logica de un sp que tengo, este sp
tiene que devolver un solo conjunto de registros, este conjunto de registros
resulta de un Select de x campos, pero quiero que el mismo Sp se de cuenta
cuando este select no devuelve ningun registro, y en este caso llame a otro
select que si retornara un conjunto de registros.

Se que podria hacer un:
if (select count ...) = 0
select x from ...
else
select x from

La cuestion esta en que si hay una forma de evitar el Count, para ahorrarle
trabajo innecesario al sql. Tambien pense en un :

Select x from...
if @@rowcount = 0
Select x from ...

Pero eso resulta en dos result sets y solo espero uno.

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 David Sans
02/04/2006 - 13:17 | Informe spam
Hola Eduardo y grupo.

Mira esta sentencia sql
select count(*) form (SELECT top 1 [CustomerID] FROM [Northwind].[dbo].[Customers] where city > 'A')

Creo que solo lee una fila de la sentencia Where
igual te funciona.

Un saludo
David Sans

"Eduardo Alvarado Meza" <ealvarado_15@(eliminarestetexto)hotmail.com> escribió en el mensaje
news:
Deseo saber si hay algo para mejorar la logica de un sp que tengo, este sp tiene que devolver un solo conjunto de registros, este
conjunto de registros resulta de un Select de x campos, pero quiero que el mismo Sp se de cuenta cuando este select no devuelve
ningun registro, y en este caso llame a otro select que si retornara un conjunto de registros.

Se que podria hacer un:
if (select count ...) = 0
select x from ...
else
select x from

La cuestion esta en que si hay una forma de evitar el Count, para ahorrarle trabajo innecesario al sql. Tambien pense en un :

Select x from...
if @@rowcount = 0
Select x from ...

Pero eso resulta en dos result sets y solo espero uno.

Gracias de antemano.

Respuesta Responder a este mensaje
#2 Eduardo Alvarado Meza
02/04/2006 - 21:26 | Informe spam
Pero seguiria en las misma, busco algo asi:
Primero el select,
Luego interceptarlo para que no lo devuelva al instante y verificar que
retorno registros.
Luego si hay registros liberarlos, sino, llamar al otro select.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida