Biến trong SQL Server là đối tượng tạm dùng để lưu trữ dữ liệu trong phạm vi của một batch hoặc thủ tục. Biến thường dùng để:
Gán giá trị tạm thời
Lưu kết quả trung gian
Dễ dàng xử lý logic phức tạp trong script hoặc thủ tục
Lưu một giá trị đơn như INT, VARCHAR, DATETIME...
DECLARE @BienTen INT
SET @BienTen = 5
DECLARE @HoTen NVARCHAR(50) = N'Nguyễn Văn A'
DECLARE @So int = 100
SELECT @BienTen AS GiaTri
Có 1 bảng nhân viên có 100 bảng ghi, ta khai báo để lấy giá trị
DECLARE @SLNV int
-- CÁCH 1:
Set @SLNV= (Select Count(*) From NhanVien)
-- CÁCH 2:
Select @SLNV=Count(*) From NhanVien
Lưu tập hợp dữ liệu giống như một bảng tạm.
Cú pháp:
DECLARE @DanhSach TABLE (
Id INT,
Ten NVARCHAR(100)
)
Thao tác:
INSERT INTO @DanhSach (Id, Ten) VALUES (1, N'Nhật'), (2, N'An')
SELECT * FROM @DanhSach
Các biến do SQL Server tự định nghĩa, ví dụ:
Biến Ý nghĩa
@@ROWCOUNT Số dòng bị ảnh hưởng bởi câu lệnh gần nhất
@@IDENTITY ID mới nhất được sinh ra (tự tăng)
@@TRANCOUNT Số transaction đang mở
@@ERROR Mã lỗi của câu lệnh gần nhất
Biến phải bắt đầu bằng dấu @ (trừ biến hệ thống dùng @@)
Biến phải được khai báo bằng DECLARE trước khi dùng
Biến chỉ tồn tại trong phạm vi của batch hoặc thủ tục
Không thể dùng biến bảng trong các hàm định nghĩa người dùng (UDF)
📌 Ví dụ thực tế: Tính thuế đơn hàng
DECLARE @GiaTien FLOAT = 1000000
DECLARE @Thue FLOAT
SET @Thue = @GiaTien * 0.1
SELECT @GiaTien AS GiaGoc, @Thue AS ThueVAT, (@GiaTien + @Thue) AS TongTien
Tìm kiếm:
Hướng dẫn chi tiết sử dụng biến trong SQL Server