Saya memiliki prosedur tersimpan yang mengembalikan 80 kolom, dan 300 baris. Saya ingin menulis pilih yang mendapat 2 kolom tersebut. Sesuatu seperti
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Ketika saya menggunakan sintaks di atas saya mendapatkan kesalahan:
"Nama Kolom Tidak Valid".
Saya tahu solusi termudah adalah mengubah prosedur yang tersimpan, tetapi saya tidak menulisnya, dan saya tidak bisa mengubahnya.
Apakah ada cara untuk melakukan apa yang saya inginkan?
Saya bisa membuat tabel temp untuk memasukkan hasilnya, tetapi karena ada 80 kolom jadi saya perlu membuat tabel temp 80 kolom hanya untuk mendapatkan 2 kolom. Saya ingin menghindari melacak semua kolom yang dikembalikan.
Saya mencoba menggunakan
WITH SprocResults AS ....
seperti yang disarankan oleh Mark, tetapi saya mendapat 2 kesalahanSintaksis salah di dekat kata kunci 'EXEC'.
Sintaksis salah dekat ')'.Saya mencoba mendeklarasikan variabel tabel dan saya mendapatkan kesalahan berikut
Sisipkan Kesalahan: Nama kolom atau jumlah nilai yang diberikan tidak cocok dengan definisi tabel
Jika saya mencoba
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
saya mendapatkan kesalahan:Sintaksis salah di dekat kata kunci 'exec'.
EXEC
bukan kata kunci MySQL (padanan yang dipersiapkan MySQL adalah pernyataan ) Meskipun saya ingin tahu jawaban untuk MySQL, jawaban di bawah ini menargetkan T-SQL. Retagging.