Mam procedurę składowaną, która zwraca 80 kolumn i 300 wierszy. Chcę napisać zaznaczenie, które otrzyma 2 z tych kolumn. Coś jak
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Gdy użyłem powyższej składni, pojawia się błąd:
"Nieprawidłowa nazwa kolumny".
Wiem, że najłatwiejszym rozwiązaniem byłoby zmienić procedurę przechowywaną, ale jej nie napisałem i nie mogę jej zmienić.
Czy jest jakiś sposób na robienie tego, co chcę?
Mógłbym utworzyć tabelę tymczasową, aby umieścić wyniki, ale ponieważ istnieje 80 kolumn, musiałbym stworzyć 80-tabelową tabelę tymczasową, aby uzyskać 2 kolumny. Chciałem uniknąć śledzenia wszystkich zwracanych kolumn.
Próbowałem używać
WITH SprocResults AS ....
zgodnie z sugestią Marka, ale otrzymałem 2 błędyNiepoprawna składnia w pobliżu słowa kluczowego „EXEC”.
Niepoprawna składnia w pobliżu ')'.Próbowałem zadeklarować zmienną tabelową i otrzymałem następujący błąd
Wstaw błąd: nazwa kolumny lub liczba podanych wartości nie zgadza się z definicją tabeli
Jeśli spróbuję
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
, pojawia się błąd:Niepoprawna składnia w pobliżu słowa kluczowego „exec”.
EXEC
nie jest słowem kluczowym MySQL (odpowiednikiem MySQL są przygotowane instrukcje ). Chociaż chciałbym poznać odpowiedź na MySQL, poniższe odpowiedzi dotyczą T-SQL. Retagging.