Khai báo biến trong SQL Server

Declare trong SQL Server là gì? Cách dùng Declare SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu cách khai báo biến trong SQL Server như thế nào nhé!

Không thể phủ nhận lập trình ngày càng có ý nghĩa quan trọng đối với cuộc sống của chúng ta. Nó là “cái nôi” sản sinh ra rất nhiều sản phẩm, phần mềm hữu ích cho cuộc sống, cả về vật chất lẫn tinh thần. Chính vì thế, lập trình đang ngày càng trở thành một ngành nghề “hot” với mức lương cao cho lập trình viên tài năng.

Thế giới lập trình vô cùng đa dạng và phong phú với nhiều ngôn ngữ có ưu và nhược điểm riêng. Song song với lập trình, bạn cần phải có một hệ quản trị cơ sở dữ liệu quan hệ vững chắc và SQL Server sẽ giúp bạn đạt được điều đó.

SQL Server là một trong số nhiều hệ quản trị cơ sở dữ liệu quan hệ phổ biến nhất hiện nay. Đây là một sản phẩm của Microsoft. Nó có đầy đủ phiên bản dành cho mọi nhu cầu phát triển của cá nhân và doanh nghiệp.

Nghe có vẻ hơi phức tạp nhưng thực tế học SQL Server không khó. Bạn có thể bắt đầu từ những kiến thức cơ bản nhất đã được tổng hợp trên Quantrimang.com. Ở bài viết này, chúng ta hãy cùng nhau tìm hiểu cách gán giá trị trong SQL hay declare trong SQL là gì nhé!

Biến (Variable) dùng để lưu trữ các giá trị tạm thời trong quá trình thực thi thuật toán.

Cú pháp khai báo biến trong SQL Server

Để khai báo biến trong SQL Server, ta sử dụng câu lệnh DECLARE, được biểu diễn như sau:

DECLARE @variable_name datatype [ = initial_value ],
@variable_name datatype [ = initial_value ],
...;

Tham số:

  • variable_name: tên gán cho biến.
  • datatype: kiểu dữ liệu của biến.
  • initial_value: giá trị mặc định gán cho biến (không bắt buộc).

Khai báo một biến trong SQL Server

Dùng DECLARE khai báo một biến bất kì

DECLARE @quantrimang VARCHAR(50);

Câu lệnh DECLARE này khai báo một biến có tên @quantrimang, với kiểu dữ liệu VARCHAR và độ dài 50 kí tự.

Sau đó bạn thay đổi giá trị biến @quantrimang bằng cách sử dụng câu lệnh SET.

SET @quantrimang = 'Hello world';

Tiếp theo hãy thử với kiểu dữ liệu INT:

DECLARE @site_value INT;

Sử dụng câu lệnh SET để gán giá trị cho biến @site_value

SET @site_value = 10;

Vậy biến @site_value ở đây được gán cho số nguyên 10.

Khai báo nhiều biến trong SQL Server

Cách sử dụng lệnh như sau:

DECLARE @quantrimang VARCHAR(50),
@site_value INT;

Trong ví dụ này, chúng ta có hai biến được khai báo: biến @quantrimang với kiểu dữ liệu VARCHAR(50) và biến @site_value kiểu dữ liệu INT.

Khai báo biến với giá trị mặc định trong SQL Server

Trong SQL Server, ta có thể gán giá trị mặc định cho biến ngay lúc khai báo.

DECLARE @quantrimang VARCHAR(50) = 'Hello world';

Vậy ở đây biến @quantrimang với kiểu dữ liệu VARCHAR và độ dài 50 kí tự được gán mặc định cho giá trị 'Hello world'.

Tương tự ta khai báo với kiểu dữ liệu INT:

DECLARE @site_value INT = 10;

Khai báo nhiều hơn một biến có gán giá trị ban đầu

Cách sử dụng lệnh như sau:

DECLARE @quantrimang VARCHAR(50) = 'Hello world';
@site_value INT = 10;

Hai biến @quantrimang@site_value đã được khai báo ở chung một lệnh và được gán giá trị ban đầu mặc định.

Khai báo một biến của bảng type

Ví dụ sau tạo một biến table, chứa giá trị được xác định trong mệnh đề OUTPUT của lệnh UPDATE. Hai câu lệnh SELECT theo sau trả về các giá trị trong @MyTableVar và kết quả của thao tác cập nhật trong bảng Employee. Kết quả trong cột INSERTED.ModifiedDate khác với các giá trị trong cột ModifiedDate của bảng Employee. Điều này là do trình kích hoạt AFTER UPDATE, cập nhật giá trị của ngày sửa đổi thành ngày hiện tại, được xác định trên bảng Employee. Tuy nhiên, các cột được trả về từ OUTPUT phản ánh dữ liệu trước khi được kích hoạt.

Ví dụ:

USE AdventureWorks2012;
GO
DECLARE @MyTableVar TABLE (
    EmpID INT NOT NULL,
    OldVacationHours INT,
    NewVacationHours INT,
    ModifiedDate DATETIME);
UPDATE TOP (10) HumanResources.Employee
SET VacationHours = VacationHours * 1.25
OUTPUT INSERTED.BusinessEntityID,
       DELETED.VacationHours,
       INSERTED.VacationHours,
       INSERTED.ModifiedDate
INTO @MyTableVar;
--Display the result set of the table variable.
SELECT EmpID, OldVacationHours, NewVacationHours, ModifiedDate
FROM @MyTableVar;
GO
--Display the result set of the table.
--Note that ModifiedDate reflects the value generated by an
--AFTER UPDATE trigger.
SELECT TOP (10) BusinessEntityID, VacationHours, ModifiedDate
FROM HumanResources.Employee;
GO

Khai báo một biến của bảng type với các chỉ mục nội tuyến

Ví dụ sau tạo một biến table với một chỉ mục nội tuyến được nhóm lại với nhau và hai chỉ mục inline không nhóm:

DECLARE @MyTableVar TABLE (
    EmpID INT NOT NULL,
    PRIMARY KEY CLUSTERED (EmpID),
    UNIQUE NONCLUSTERED (EmpID),
    INDEX CustomNonClusteredIndex NONCLUSTERED (EmpID)
);
GO

Truy vấn sau trả thông tin về các chỉ mục được tạo ở truy vấn trước.

SELECT *
FROM tempdb.sys.indexes
WHERE object_id < 0;
GO

Khai báo một biến của kiểu bảng do người dùng định nghĩa

Ví dụ sau tạo một tham số có giá trị bảng hoặc biến bảng tên @LocationTVP. Điều này yêu cầu một kiểu bảng do người dùng định nghĩa tên LocationTableType.

DECLARE @LocationTVP
AS LocationTableType;

Bài trước: LITERAL (Hằng) trong SQL Server

Bài tiếp: SEQUENCE trong SQL Server

Thứ Bảy, 28/10/2023 11:33
3,912 👨 62.680
0 Bình luận
Sắp xếp theo
    ❖ SQL Server