SQL Server - SELECT FROM αποθηκευμένη διαδικασία

Έχω μια αποθηκευμένη διαδικασία που επιστρέφει γραμμές:

CREATE PROCEDURE MyProc
AS
BEGIN
    SELECT * FROM MyTable
END

Η πραγματική μου διαδικασία είναι λίγο πιο περίπλοκη, γι' αυτό και είναι απαραίτητη μια sproc.

Είναι δυνατόν να επιλέξετε την έξοδο καλώντας αυτή τη διαδικασία;

Κάτι σαν:

SELECT * FROM (EXEC MyProc) AS TEMP

Πρέπει να χρησιμοποιήσω SELECT TOP X, ROW_NUMBER, και μια πρόσθετη ρήτρα WHERE για να κάνω σελίδα τα δεδομένα μου, και δεν θέλω πραγματικά να περάσω αυτές τις τιμές ως παραμέτρους.

Μπορείτε να

  1. να δημιουργήσετε μια μεταβλητή πίνακα για να κρατάτε σύνολο αποτελεσμάτων από την αποθηκευμένη διαδικασία και στη συνέχεια
  2. να εισαγάγετε την έξοδο της stored proc στη μεταβλητή πίνακα, και στη συνέχεια
  3. να χρησιμοποιήσετε τη μεταβλητή πίνακα ακριβώς όπως θα κάνατε με οποιαδήποτε άλλη πίνακα...

... sql ....

Declare @T Table ([column definitions here])
Insert @T Exec storedProcname params 
Select * from @T Where ...
Σχόλια (3)

Θέλετε είτε μια συνάρτηση με τιμή πίνακα είτε να εισαγάγετε την EXEC σας σε έναν προσωρινό πίνακα:

INSERT INTO #tab EXEC MyProc
Σχόλια (1)

Φαίνεται ότι ίσως πρέπει να χρησιμοποιήσετε ένα view. Μια προβολή επιτρέπει την αναπαράσταση ενός ερωτήματος ως πίνακα, ώστε να μπορεί να ερωτηθεί η προβολή.

Σχόλια (0)