Tạo Stored Procedure có tham số trả về trong SQL Server
Muốn Procedure
trả về dữ liệu trong ham số, thì khi khai báo tham số thêm vào từ khóa ở cuối out
, ví dụ:
PROCEDURE ProcedureName(@param1 varchar(50), @param2 int out) AS BEGIN SET NOCOUNT ON; ---Các SQL-T khác SET @param2 = 100 --gán giá trị cho tham số trả về END
Procedure trên có 2 tham số là
@param1
và @param2
, trong đó với @param2
sau khi thi hành có lưu kết quả trả vể.Sử dụng SqlCommand
thi hành Procedure
và đọc kết quả trả về từ tham số
Sử dụng
SqlCommand
trong C# xem thêm tại: Truy vấn dữ liệu SQL Server với SqlCommand, ở đây sẽ viết thử code thi hành procedure vừa tạo ở trên và đọc kết quả trả về từ tham số:SqlConnection connection; //Cần khởi tạo connection trước SqlCommand cmd = new SqlCommand("ProcedureName", connection); cmd.CommandType = CommandType.StoredProcedure; //Đưa tham số vào cmd SqlParameter param1 = new SqlParameter("param1", SqlDbType.VarChar); param1.Value = "ABC"; SqlParameter param2 = new SqlParameter("param2", SqlDbType.Int); param2.Direction = ParameterDirection.Output; param2.Value = 0; cmd.Parameters.Add(param1); cmd.Parameters.Add(param2); //Thi hành ProcudeDure connection.Open(); cmd.ExecuteNonQuery(); connection.Close(); //Đọc kết quả trả về int Ketqua = (int)param2.Value;
Như vậy để lấy được tham số trả về từ procedure trên, cụ thể là ở tham số @param2
, thi khi thêm tham số này vào SqlCommand
nó phải được thiết lập Direction
là OutPut
param2.Direction = ParameterDirection.Output;