GETTING STARTED
DATA DEFINITION
DATA QUERIES
CONDITION & OPERATORS
EXPLORED
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Thiết lập ID tăng tự động với Identity trong SQL Server

ID tăng tự động là một nhu cầu rất quan trọng trong việc lưu trữ dữ liệu, hầu như tất cả các khóa chính trong các dự án thực tế đều tạo bằng cách cho nó tăng tự động. Vậy làm thế nào để thiết lập tăng tự động? Trong bài này mình sẽ hướng dẫn các bạn.

1. Thuộc tính Identity trong SQL Server

Với MySQL thì chúng ta có thuộc tính auto_increment dùng để xác định một column nào đó tăng tự động, còn SQL Server thì chúng ta có thuộc tính IDENTITY.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp của nó như sau:

IDENTITY[(seed,increment)]

Trong đó:

  • seed là giá trị được gán cho record đầu tiên lúc insert.
  • increment là giá trị sẽ tăng lên sau mỗi lần insert. 

Ví dụ 1: Thiết lập giá trị của record đầu tiên là 10, record thứ hai là 20, .... tức bước nhảy là 10

IDENTITY (10,10)

Ví dụ 2: Thiết lập giá trị của record đầu tiên là 10, record thứ hai là 15, .... tức bước nhảy là 5.

IDENTITY (10, 5)

2. Ví dụ thực tế với Identity trong SQL Server

Trước tiên bạn hãy tạo một schema tên là hr.

CREATE SCHEMA hr;

Bước tiếp theo tạo một bảng tên là person, có khóa chính là person_id và tăng tự động với bước nhảy là 1, giá trị khởi tạo là 1.

CREATE TABLE hr.person (
    person_id INT IDENTITY(1,1) PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    gender CHAR(1) NOT NULL
);

Các ví dụ dưới đây có sử dụng lênh INSERT nên nếu bạn không hiểu thì tạm thời bỏ qua bài này nhé, còn nếu bạn đã biết sơ sơ về lệnh insert thì cứ đọc tiếp.

Thêm record đầu tiên

INSERT INTO hr.person(first_name, last_name, gender)
OUTPUT inserted.person_id
VALUES('John','Doe', 'M');

Execute hoặc nhấn F5 để chạy câu truy vấn, kết quả bạn sẽ thấy như sau:

SQL Server Identity Column Example png

Thêm record thứ hai

INSERT INTO hr.person(first_name, last_name, gender)
OUTPUT inserted.person_id
VALUES('Jane','Doe','F');

Chạy câu SQL này thì kết quả như sau:

SQL Server Identity Column Example 2 png

Như vậy rõ ràng person_id được tăng lên 1 cho record tiếp theo.

3. Xóa một record thì ID có được thiết lập lại không? 

Điểm đặc biệc giúp Identity truy cập nhanh đó là tăng tự động và không hề thiết lập lại giá trị nếu bại xóa một vài record nào đó. 

Ví dụ bạn có một dãy các record từ (1 ...10), trong quá trình sử dụng bạn xóa đi record có id là (4, 5, 6), lúc này dãy các record sẽ bị khuyết 3 giá trị (4, 5, 6). Bây giờ bạn thực hiện thêm mới một record thì ID vẫn tăng lên 11 chứ không lặp lại một trong ba giá trị (4, 5, 6).

Ok, vậy là bạn đã biết cách sử dụng thuộc tính Identity để thiết lập ID tăng tự động rồi đấy, chúc bạn học tốt và hẹn gặp lại ở bài tiếp theo.

Cùng chuyên mục:

Hàm CHAR trong SQL Server

Hàm CHAR trong SQL Server

Cách sử dụng hàm CHAR trong SQL Server

Hàm CHARINDEX trong SQL Server

Hàm CHARINDEX trong SQL Server

Cách sử dụng hàm CHARINDEX trong SQL Server

Hàm CONCAT trong SQL Server

Hàm CONCAT trong SQL Server

Cách sử dụng hàm CONCAT trong SQL Server

Hàm + trong SQL Server

Hàm + trong SQL Server

Cách sử dụng hàm + trong SQL Server

Hàm DATALENGTH trong SQL Server

Hàm DATALENGTH trong SQL Server

Cách sử dụng hàm DATALENGTH trong SQL Server

Hàm LEFT trong SQL Server

Hàm LEFT trong SQL Server

Cách sử dụng hàm LEFT trong SQL Server

Hàm LEN trong SQL Server

Hàm LEN trong SQL Server

Cách sử dụng hàm LEN trong SQL Server

Hàm LOWER trong SQL Server

Hàm LOWER trong SQL Server

Cách sử dụng hàm LOWER trong SQL Server

Hàm LTRIM trong SQL Server

Hàm LTRIM trong SQL Server

Cách sử dụng hàm LTRIM trong SQL Server

Hàm NCHAR trong SQL Server

Hàm NCHAR trong SQL Server

Cách sử dụng hàm NCHAR trong SQL Server

Hàm PATINDEX trong SQL Server

Hàm PATINDEX trong SQL Server

Cách sử dụng hàm PATINDEX trong SQL Server

Hàm REPLACE trong SQL Server

Hàm REPLACE trong SQL Server

Cách sử dụng hàm REPLACE trong SQL Server

Hàm RIGHT trong SQL Server

Hàm RIGHT trong SQL Server

Cách sử dụng hàm RIGHT trong SQL Server

Hàm RTRIM trong SQL Server

Hàm RTRIM trong SQL Server

Cách sử dụng hàm RTRIM trong SQL Server

Hàm SPACE trong SQL Server

Hàm SPACE trong SQL Server

Cách sử dụng hàm SPACE trong SQL Server

Hàm STR trong SQL Server

Hàm STR trong SQL Server

Cách sử dụng hàm STR trong SQL Server

Hàm UPPER trong SQL Server

Hàm UPPER trong SQL Server

Cách sử dụng hàm UPPER trong SQL Server

Hàm SUBSTRING trong SQL Server

Hàm SUBSTRING trong SQL Server

Cách sử dụng hàm SUBSTRING trong SQL Server

Hàm STUFF trong SQL Server

Hàm STUFF trong SQL Server

Cách sử dụng hàm STUFF trong SQL Server

Hàm ABS trong SQL Server

Hàm ABS trong SQL Server

Cách sử dụng hàm ABS trong SQL Server

Top