Stored Procedure là một tập hợp các lệnh SQL và công thức tính toán. Đôi khi chúng ta cần tạo ra một biến để lưu trữ dữ liệu tạm thời trong SQL Server. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo biến trong SQL Server và cách sử dụng chúng để làm việc hiệu quả.
1. Khai báo biến
Để khai báo biến trong SQL Server, chúng ta sử dụng từ khóa DECLARE với cú pháp sau:
DECLARE @tên_biến kiểu_dữ_liệu
Ví dụ: Khai báo biến model_year
có kiểu dữ liệu là SMALLINT
.
Lưu ý: Mặc định, giá trị ban đầu của biến khi khai báo là NULL.
2. Gán giá trị cho biến
Trong SQL Server, để gán giá trị cho biến, chúng ta sử dụng từ khóa SET và toán tử = với cú pháp sau:
SET @tên_biến = giá_trị
Ví dụ: Gán giá trị 2018 cho biến @model_year
.
3. Sử dụng biến
Việc sử dụng biến trong SQL Server tương tự như việc sử dụng tham số của procedure. Chúng chỉ khác nhau về tên gọi.
Ví dụ: Lấy sản phẩm trong bảng products
với năm sản xuất bằng giá trị của biến @model_year
.
Bạn có thể chạy các lệnh SQL này mà không cần viết stored procedure, chỉ để hiểu về cách sử dụng biến trong SQL Server.
Kết quả sẽ như sau:
Lưu ý: Các toán tử như +, -, *, / vẫn có thể được sử dụng để thay đổi giá trị của biến.
4. Lưu trữ câu truy vấn vào biến
Nếu bạn muốn lưu một câu truy vấn SQL vào biến để chạy sau này, chỉ cần thực hiện các bước sau:
- Tạo một biến, ví dụ:
@product_count
có kiểu dữ liệu là INT. - Sử dụng từ khóa SET để lưu trữ câu truy vấn vào biến.
5. Gán giá trị vào biến trong lệnh SELECT
Nếu bạn muốn gán giá trị vào biến trong câu lệnh SELECT, hãy làm theo các bước dưới đây:
- Tạo hai biến để lưu trữ thông tin về tên sản phẩm và giá sản phẩm.
- Sử dụng các biến này trong câu lệnh SELECT.
Để xem giá trị của biến, hãy chạy câu SQL sau.
Hãy tổng hợp cả 3 câu SQL trên và chạy một lần, sau đó xem kết quả như hình dưới đây.
6. Ví dụ tổng thể với Stored Procedure
Dưới đây là một ví dụ về cách sử dụng biến trong SQL Server.
Như vậy, chúng ta đã tìm hiểu về biến và cách sử dụng chúng trong SQL Server. Đây là những kiến thức quan trọng khi làm việc với procedure, trigger, function.