Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O procedimento armazenado retorna vários conjuntos de resultados


Você basicamente seleciona dois conjuntos de resultados
SELECT * FROM @myTable1
SELECT * FROM @myTable2

No entanto, algumas ferramentas ocultarão alguns resultados (por exemplo, pgAdmin mostrará apenas o último) e algumas ferramentas têm algum tipo de requisito para chegar ao próximo conjunto de resultados (por exemplo, IDataReader do .NET não permitirá que você Read() do segundo conjunto de resultados até você chamar NextResult() ).

Editar:

Uma alternativa neste caso, uma vez que os tipos dos dois resultados coincidem, é combiná-los em um único conjunto de resultados:
SELECT field0, field1 from @myTable1
UNION
SELECT field0, field3 from @myTable2

Você também pode escolher entre UNION ALL ou UNION DISTINCT (o padrão) onde o último enviará apenas linhas que não sejam repetidas.