Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gespeicherte Prozeduren geben mehrere Resultsets zurück

Sie wählen praktisch nur zwei Ergebnissätze aus

SELECT * FROM @myTable1
SELECT * FROM @myTable2

Einige Tools verbergen jedoch einige Ergebnisse (z. B. zeigt pgAdmin nur das letzte) und einige Tools haben eine Art Anforderung, um zum nächsten Ergebnissatz zu gelangen (z. B. erlaubt Ihnen der IDataReader von .NET nicht, Read() von der zweiten Ergebnismenge, bis Sie NextResult() aufrufen ).

Bearbeiten:

Da die Typen der beiden Ergebnisse übereinstimmen, besteht in diesem Fall eine Alternative darin, sie zu einer einzigen Ergebnismenge zu kombinieren:

SELECT field0, field1 from @myTable1
UNION
SELECT field0, field3 from @myTable2

Sie können auch zwischen UNION ALL wählen oder UNION DISTINCT (Standardeinstellung), wobei letzteres nur Zeilen sendet, die keine Wiederholungen sind.