Tôi có một thủ tục lưu trữ trả về hai lựa chọn, mà tôi sử dụng trong báo cáo. Các lựa chọn đầu tiên là dữ liệu để hiển thị trong định dạng bảng và lần thứ hai được siêu dữ liệu để hiển thị ở đầu báo cáo, như thể hiện dưới đây:Cách chọn [temp table1] = [subselect 1], [temp table2] = [subselect 2] FROM [Stored Procedure]
CREATE PROCEDURE dbo. GetReport
@Input INT
AS
BEGIN
--Get #Metadata
-- #Results = f(#Metadata) … compex calculation
SELECT * FROM #Results
SELECT * FROM #Metadata
END
Khi tính sproc là khá tích cực, tôi muốn chuẩn bị các dòng báo cáo dưới dạng dữ liệu đơn giản (trong hai bảng: PrecalcResults và PrecalcMetadata) cho một số thông số sproc chủ yếu được sử dụng qua đêm. Lather Tôi sẽ trực tiếp chọn các vau được tính toán trước hoặc tính toán chúng với sproc theo các tham số.
Vì lý do bảo trì Tôi muốn sử dụng sproc cùng để tính toán dữ liệu đó sẽ là: 1. cho thấy trong báo cáo 2. được lưu trữ trong PrecalcResults và PrecalcMetadata (với các thông số được sử dụng)
Nếu tôi sẽ có một lựa chọn sproc tôi sẽ là một cách tiếp cận desctibed ở đây: Insert results of a stored procedure into a temporary table
Như tôi có multiselect sproc tôi muốn làm một cái gì đó như ở trên nhưng với hai bảng. Trong .net Tôi sẽ làm DataSet.Tables [0] và DataSet.Tables [1] ..., nhưng tôi muốn làm điều đó trong tsql, để chạy nó trong công việc hàng ngày.
Điều này có thể thực hiện được trong MS SQL không?
Tôi phải xin lỗi bản thân mình, từ câu trả lời dưới đây tôi có thể thấy tôi không rõ ràng. Tôi muốn thực hiện chức năng này như TSQL tinh khiết.
Thử tìm kiếm "nhiều recordsets tích cực" (hay còn gọi là MARS). Bạn sẽ cần sử dụng phương thức 'NextRecordset' để di chuyển từ một bản ghi này sang bản ghi tiếp theo. – HABO