Làm cách nào tôi có thể trả về nhiều giá trị từ một thủ tục được lưu trữ trong mysql?

Trong bài viết này, tôi sẽ giải thích cách tạo thủ tục lưu sẵn để trả về giá trị hoặc nhiều giá trị trong máy chủ SQL


Mô tả.


Ở bài trước mình đã giải thích cách viết stored procedure trả về giá trị tham số đầu ra trong sql server và nhiều bài viết liên quan đến SQL Server. Bây giờ tôi sẽ giải thích cách tạo thủ tục lưu sẵn để trả về giá trị trong SQL Server. Để thực hiện khái niệm này, trước tiên hãy thiết kế bảng trong cơ sở dữ liệu và đặt tên là UserDetails như hình bên dưới


Tên cột dọc

Loại dữ liệu

Cho phép Null

Tên người dùng

int (đặt thuộc tính nhận dạng = true)

KHÔNG

Tên tài khoản

véc ni(50)

Đúng

Họ

véc ni(50)

Đúng

Họ

Varchar(50)

Đúng

Sau khi hoàn thành thiết kế bảng, nhập một số dữ liệu như hình bên dưới


Làm cách nào tôi có thể trả về nhiều giá trị từ một thủ tục được lưu trữ trong mysql?

Sau khi tạo bảng xong, hãy viết thủ tục được lưu trữ như hình bên dưới



TẠO THỦ TỤC GetUserDetails

@UserName VARCHAR( 50 ),

@Result INT OUTPUT

BẰNG

BẮT ĐẦU

CHỌN UserId TỪ Chi tiết người dùng WHERE UserName=@UserName

KẾT THÚC

Bây giờ chúng tôi muốn lấy giá trị trả về bằng thủ tục GetUserDetails để viết truy vấn như dưới đây



KHAI BÁO @UserId INT

EXEC GetUserDetails 'SureshDasari', @Result< =@UserId OUTPUT

Khi chúng tôi chạy truy vấn trên, chúng tôi sẽ nhận được dữ liệu như được hiển thị bên dưới


đầu ra


Làm cách nào tôi có thể trả về nhiều giá trị từ một thủ tục được lưu trữ trong mysql?

Bằng cách này, chúng ta có thể trả về giá trị trong thủ tục được lưu trữ trong máy chủ SQL. Sau đây tôi sẽ giải thích một câu hỏi phỏng vấn Sự khác biệt giữa hàm và thủ tục được lưu trữ trong SQL Server là gì?


Nếu có ai hỏi câu hỏi này trước, chúng tôi sẽ nói rằng thủ tục lưu sẵn sẽ trả về nhiều giá trị nhưng hàm sẽ chỉ trả về một giá trị.  


Thủ tục được lưu trữ sẽ trả về nhiều giá trị như thế nào?



TẠO THỦ TỤC GetMultipleUserDetails

@UserName VARCHAR( 50 ),

@Id INT OUTPUT,

@lName VARCHAR( 50 ) OUTPUT

BẰNG

BẮT ĐẦU

CHỌN UserId , Họ TỪ UserDetails WHERE UserName=@UserName

KẾT THÚC

Bây giờ, chúng tôi muốn nhận nhiều giá trị được trả về theo quy trình GetMultipleUserDetails để viết truy vấn như được hiển thị bên dưới



KHAI BÁO @UserId INT, @LastName VARCHAR(50)

EXEC GetMultipleUserDetails 'SureshDasari', @Id< =@UserId OUTPUT, @lName= @LastName OUTPUT

Khi chúng tôi chạy truy vấn trên, chúng tôi sẽ nhận được kết quả như hình bên dưới

đầu ra


Làm cách nào tôi có thể trả về nhiều giá trị từ một thủ tục được lưu trữ trong mysql?

Bằng cách này, chúng tôi có thể trả về nhiều giá trị với thủ tục được lưu trữ nhưng trong chức năng, chúng tôi không có cơ hội trả về không quá một giá trị


Làm cách nào tôi có thể trả về nhiều giá trị từ một thủ tục được lưu trữ trong mysql?

Nếu bạn thích bài đăng này, vui lòng hỗ trợ blog bên dưới. Nó miễn phí

Nhận Asp mới nhất. mạng, C#. mạng, VB. NET, jQuery, Plugin & Đoạn mã MIỄN PHÍ bằng cách đăng ký nguồn cấp dữ liệu Facebook, Twitter, RSS hoặc qua email của chúng tôi

Làm cách nào để trả về nhiều giá trị trong thủ tục lưu trữ SQL?

Để tìm nạp nhiều giá trị được trả về từ Quy trình được lưu trữ, bạn cần phải sử dụng một biến có kiểu dữ liệu và kích thước giống như tham số Đầu ra và chuyển nó làm Đầu ra . Bạn cũng có thể sử dụng hàm Split để chia các giá trị được phân tách bằng dấu phẩy (được phân tách) thành các hàng. . You can also make use of the Split function to split the comma separated (delimited) values into rows.

Chúng ta có thể trả về nhiều giá trị từ một thủ tục không?

Bạn không thể trả về nhiều giá trị từ thủ tục lưu sẵn theo cách bạn đang làm hiện nay . Tuy nhiên, bạn có thể chỉ định các tham số của mình là OUTPUT để bạn có thể truy cập chúng.

Làm cách nào để nhận nhiều tập hợp kết quả từ một thủ tục được lưu trữ?

Để nhiều tập kết quả hoạt động, chúng ta cần chuyển sang API ObjectContext bằng cách sử dụng giao diện IObjectContextAdapter . Sau khi có ObjectContext, chúng ta có thể sử dụng phương thức Dịch để dịch kết quả của quy trình được lưu trữ thành các thực thể có thể được theo dõi và sử dụng trong EF như bình thường.

Làm cách nào để nhận nhiều hàng từ thủ tục được lưu trữ trong MySQL?

Bạn có thể sử dụng con trỏ trong MySQL. .
Kế hoạch A. Điền vào một bảng khác, nó có thể là một bảng tạm thời
Kế hoạch B. Chỉ cần thực hiện câu lệnh SELECT của bạn mà không có mệnh đề INTO từ thủ tục; . )
Kế hoạch C. Không sử dụng thủ tục, chỉ thực hiện truy vấn SELECT