Tôi có một thủ tục được lưu trữ trả về 80 cột và 300 hàng. Tôi muốn viết một lựa chọn có được 2 trong số các cột đó. Cái gì đó như
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Khi tôi sử dụng cú pháp trên, tôi gặp lỗi:
"Tên cột không hợp lệ".
Tôi biết giải pháp đơn giản nhất là thay đổi thủ tục được lưu trữ, nhưng tôi đã không viết nó và tôi không thể thay đổi nó.
Có cách nào để làm những gì tôi muốn?
Tôi có thể tạo một bảng tạm thời để đưa kết quả vào, nhưng vì có 80 cột nên tôi cần tạo một bảng tạm thời 80 cột chỉ để có được 2 cột. Tôi muốn tránh theo dõi tất cả các cột được trả lại.
Tôi đã thử sử dụng
WITH SprocResults AS ....
theo đề xuất của Mark, nhưng tôi đã gặp 2 lỗiCú pháp không chính xác gần từ khóa 'EXEC'.
Cú pháp không chính xác gần ')'.Tôi đã thử khai báo một biến bảng và tôi đã gặp lỗi sau
Lỗi chèn: Tên cột hoặc số lượng giá trị được cung cấp không khớp với định nghĩa bảng
Nếu tôi thử
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
tôi nhận được lỗi:Cú pháp không chính xác gần từ khóa 'exec'.