Bài viết này được đăng tại
freetuts.net
Bạn đang đọc : Tạo biến bằng lênh DECLARE trong SQL Server
, không được copy dưới mọi hình thức .
Tóm Tắt
1. Khai báo biến
Để khai báo biến thì bạn sử dụng từ khóa DECLARE với cú pháp như sau :
DECLARE @var_name data_type;
Trong đó :
@var_name
là tên của biến, luôn luôn bắt đầu bằng ký tự@
data_type
là kiểu dữ liệu của biến
Ví dụ: Khai báo biến model_year có kiểu dữ liệu là SMALLINT.
DECLARE @model_year AS SMALLINT;
Nếu bạn muốn khai báo nhiều biến cùng lúc thì sử dụng nhiều lệnh DECLARE, hoặc bạn viết nó cách nhau bởi dấu phẩy như sau :
DECLARE @model_year SMALLINT, @product_name VARCHAR(MAX);
Lưu ý: Mặc định khi bạn khai báo biến thì giá trị ban đầu của nó là NULL.
2. Gán giá trị cho biến
Trong SQL Server để gán giá trị thì bạn sử dụng từ khóa SET
và toán tử =
với cú pháp sau:
SET @var_name = value
Ví dụ: Gán giá trị 2018
cho biến @model_year
SET @model_year = 2018;
3. Sử dụng biến
Việc sử dụng biến cũng như việc bạn sử dụng tham số của procedure vì thực ra cả hai đều biến, chỉ là tên gọi khác nhau mà thôi .
Giả sử mình cần lấy sản phẩm trong bảng products với năm sản xuất bằng với giá trị của biến @model_year
thì sẽ viết như sau:
DECLARE @model_year SMALLINT; SET @model_year = 2018; SELECT product_name, model_year, list_price FROM production.products WHERE model_year = @model_year ORDER BY product_name;
Bạn trọn vẹn hoàn toàn có thể chạy tổng thể và toàn diện lệnh SQL này mà không cần viết stored procedure vì mình chỉ lý giải phần biến cho bạn hiểu mà thôi .
Kết quả sẽ nhận được như sau :
Lưu ý: Việc tính toán thay đổi giá trị của biến bằng cách sử dụng các toán tử như +, -, *, / vẫn sử dụng bình thường.
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 SQL vào biến để sau này muốn chạy thì chỉ cần chạy biến thì hãy thực thi theo những bước sau :
Đầu tiên bạn hãy tạo một biến, giả sử mình đặt tên là @product_count
, vì đếm số lượng nên cho kiểu INT.
DECLARE @product_count INT;
Tiếp theo sử dụng SET để tàng trữ câu SQL vào biến .
SET @product_count = ( SELECT COUNT(*) FROM production.products );
Cuối cùng muốn chạy câu truy vấn này thì chỉ cần viết như sau :
SELECT @product_count;
5. Gán giá vào biến ở lệnh SELECT
Nếu bạn muốn gán giá trị vào biến trong câu lệnh SELECT thì hãy thực thi theo những bước như ví dụ dưới đây .
Đầu tiên tạo hai biến để lưu trữ product name và list price.
DECLARE @product_name VARCHAR(MAX), @list_price DECIMAL(10,2);
Tiếp theo sử dụng nó trong câu lệnh SELECT .
SELECT @product_name = product_name, @list_price = list_price FROM production.products WHERE product_id = 100;
Vậy là xong. Để xem giá trị của biến thì hãy chạy câu SQL sau .
SELECT @product_name AS product_name, @list_price AS list_price;
Hãy gom toàn diện và tổng thể 3 câu SQL trên lại và chạy một lần nhé, sau đó xem tính năng thì sẽ thấy như hình dưới đây .
6. Ví dụ tổng thể với Stored Procedure
Hãy xem ví dụ dưới đây về cách sử dụng biến trong SQL Server nhé .
Xem thêm : So sánh imperative programming và declarative programming
CREATE PROC uspGetProductList( @model_year SMALLINT ) AS BEGIN DECLARE @product_list VARCHAR(MAX); SET @product_list = ''; SELECT @product_list = @product_list + product_name + CHAR(10) FROM production.products WHERE model_year = @model_year ORDER BY product_name; PRINT @product_list; END;
Như vậy là mình đã trình làng xong biến và cách sử dụng biến trong SQL Server, đây là bài khá quan trọng bởi phần lớn khi thao tác với procedure, trigger, function bạn đều phải sử dụng biến rất liên tục .
Source: https://final-blade.com
Category: Kiến thức Internet