Thiết Lập ID Tăng Tự động Với Identity Trong SQL Server - Freetuts
Có thể bạn quan tâm
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.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.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.
Cú pháp của nó như sau:
IDENTITY[(seed,increment)]
Bài viết này được đăng tại [free tuts .net]
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:
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:
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.
Từ khóa » Khóa Chính Tự Tăng Sql
-
[Tự Học SQL] Tìm Hiểu Về Cách Tự động Tăng Giá Trị Trong Bảng
-
Auto Increment Trong SQL | Lập Trình Từ Đầu
-
Khóa Chính Tăng Tự động Trong SQL Server Management Studio 2012?
-
Thêm Khóa Chính Tăng Dần Tự động Vào Bảng Hiện Có Trong SQL ...
-
Sql — Làm Cách Nào Để Thêm Khóa Chính Auto_Increment Trong ...
-
Chỉnh ID Tự Tăng Trong SQL Server - Programming - Dạy Nhau Học
-
Khóa Chính Tăng Tự động Trong SQL Server Management Studio 2012
-
CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG ...
-
Tự động Gán & Tăng Giá Trị Cho Cột (AUTO_INCREMENT) Trong MySQL
-
Bài 6: Khóa Chính Trong SQL Server - VnCoder
-
Tổng Hợp Những Câu Lệnh SQL Cơ Bản | TopDev
-
Sql — Tự động Tăng Sau Khi Xóa Trong MySQL
-
Tổng Hợp Một Số Function Tạo Mã Tự động Tăng Trong SQL Server