Pergunta

Eu tenho um procedimento armazenado que retorna vários conjuntos de resultados similiar ao seguinte:

ALTER PROCEDURE sp_XXXX 
(
    XXXXXX
)
AS
SET NOCOUNT ON

SELECT XXXXXXX    


IF @@ROWCOUNT = 0
    SELECT     XXXXXXX



RETURN

Eu quero o meu relatório para usar o primeiro conjunto de resultados se ele tem dados ou usar o segundo no caso do primeiro é vazio. Qualquer ajuda?

Foi útil?

Solução

No "união todos" sproc seus dois conjuntos de resultados. Se você precisa para distingui-los adicionar uma coluna derivada indicando o conjunto de resultados originais.

select 'ds1' as dataset, *
from table1
union all
select 'ds2' as dataset, *
from table2

Outra tentativa

resultado Dump set 1 em uma tabela temporária e só executar a segunda consulta se ele está vazio.

código pseudo:

select * into #tempResult 
from table 1

if table1 is empty 

select * from table2
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top