2011-12-16 65 views
15

Tôi có một thủ tục lưu sẵn SQL Server; Tôi cần phải nắm bắt giá trị trả về từ thủ tục lưu sẵn. Đây có phải là cách thực hiện điều này đúng không?Lưu trữ SQL Server Thủ tục lưu giữ giá trị trả về trong T-SQL

declare valback varchar(30) 
    set valback = exec storeproc1 

Trong trường hợp này, storeproc1 là quy trình được lưu trữ của tôi.

+1

Bạn cần sử dụng '@ valback' để cho biết đó là biến. – JNK

+0

SP của bạn có tham số OUTPUT mà bạn đang cố truy xuất hay SP của bạn thực hiện một số kiểu chèn, cập nhật hoặc xóa mà bạn chỉ muốn kiểm tra xem nó có thành công không? –

Trả lời

33

Để bắt đầu, sử dụng đúng cú pháp của T-SQL:

declare @valback int; 
exec @valback = storeproc1; 

Sự trở lại chỉ loại cho phép cho một thủ tục được lưu trữ là int. Các thủ tục lưu trữ trả lại trạng thái thông qua câu lệnh return.

tôi bằng cách nào đó có một cảm giác rằng bạn thực sự muốn cái gì khác, cụ thể là: để có một OUTPUT parameter trong thủ tục:

declare @valback varchar(30); 
exec storedproc1 @valback OUTPUT; 

hoặc nắm bắt được kết quả thủ tục thiết lập thông qua INSERT ... EXEC. Xem How to Share Data Between Stored Procedures.

Các vấn đề liên quan