Stored Procedure – Variables

Stored Procedure - Variables
Stored Procedure - Variables

Trong lập trình hàm, ngoài những biến do người dùng truyền vào dưới dạng các tham số đầu vào. Đôi khi chúng ta cũng cần đến những biến cục bộ. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu và sử dụng các biến cục bộ phía trong một procedure. Để phát huy thêm nữa sức mạnh của stored procedure.

Ôn tập khái niệm biến

Trong một số bài viết trước, chúng ta cũng đã gặp khái niệm biến (variable), cũng như cách sử dụng chúng. Hôm nay chúng ta sẽ ôn tập một chút trước khi sử dụng chúng trong procedure của chúng ta.

Biến (varibale) là một vùng nhớ máy tính được gắn liền với một tên gọi (định danh). Thông tin được chứa trên vùng nhớ này được gọi là giá trị của biến. Thông qua tên gọi của biến, chúng ta có thể tham chiếu đến giá trị của nó hoặc thực hiện thao tác cập nhật giá trị. Để máy tính có thể hoạt động một cách chính xác.

Khi sử dụng một biến trong lập trình, chúng ta sẽ cần quan tâm đến:

  • Kiểu dữ liệu
  • Tên biến
  • Giá trị

Với T-SQL, tên một biến luôn bắt đầu bằng dấu @. Để khai báo một biến, chúng ta sử dụng từ khóa DECLARE và để gán giá trị cho nó, chúng ta có từ khóa SET.

Khai báo và sử dụng biến
Khai báo và sử dụng biến

Sử dụng biến trong một số tác vụ đơn giản

Ngoài việc khai báo một biến để thử nghiệm các hàm của T-SQL như trong bài hướng dẫn trước. Chúng ta còn có thể sử dụng biến trong nhiều tác vụ khác. Cụ thể sử dụng như thế nào sẽ phụ thuộc vào bài toán của các bạn. Mình sẽ giới thiệu một vài trường hợp cơ bản.

Sử dụng biến trong câu truy vấn

Trong một số trường hợp, chúng ta cần thay đổi một hay một vài điều kiện truy vấn dữ liệu. Với những câu truy vấn đơn giản, chúng ta có thể thay điều kiện một cách khá đơn giản. Tuy nhiên, những câu truy vấn dài, phức tạp việc thay đổi câu truy vấn có thể làm sai cú pháp hoặc logic của chúng. Lúc này, chúng ta có thể sử dụng biến để công việc dễ dàng và an toàn hơn.

Với ví dụ này, khi chúng ta cần thay đổi thời gian hay quốc gia của invoice. Chúng ta chỉ cần thay đổi ở vị trí gán giá trị cho biến. Hạn chế đụng vào câu truy vấn, nhờ đó sẽ giảm thời gian thao tác và hạn chế được các sai xót.

Lưu trữ 1 thuộc tính trong câu truy vấn vào biến

Đôi lúc, chúng ta muốn lưu trữ các thuộc tính trong câu truy vấn vào một biết. Có thể sử dụng biến đó vào các bước khác thay vì hiển thị kết quả ra màn hình.

Lưu trữ toàn bộ kết quả câu truy vấn vào biến

Ngoài lưu từng thuộc tính trong câu truy vấn, chúng ta cũng có thể lưu toàn bộ kết quả vào một biến.

Sử dụng biến trong procedure

Trong procedure, biến cũng được sử dụng tương tự với các cách chúng ta đã biết. Nếu chúng ta sử dụng biến một cách hợp lý, procedure sẽ phát huy được tối đa các ưu điểm của nó.

Ví dụ: Chúng ta cần xây dựng một procedure, liệt kê các khách hàng VIP. Điều kiện để trở thành VIP là có tổng chi tiêu lớn hơn 1 ngưỡng nào đó. Tất nhiên theo thời gian, ngưỡng này cũng được tăng dần. Chúng ta có thể sử dụng tham số đầu vào có giá trị mặc định để đơn giản procedure này. Tuy nhiên, tần suất thay đổi giá trị “ngưỡng” cũng tương đối thấp. Chúng ta có thể sử dụng biến cho giá trị này, mỗi lần thay đổi chúng ta cũng cần rất ít thao tác lên nó.

Các bạn có thể thấy, chúng ta có thể sử dụng một biến bên trong một procedure. Mỗi khi cần cập nhật. Chúng ta chỉ cần gán lại giá trị cho biến mà không sợ ảnh hưởng đến cú pháp hay logic của câu truy vấn. Thật là tiện lợi.