Tương tự như MySQL, PostgreSQL, Oracle và nhiều cơ sở dữ liệu quan hệ khác, SQL Server được sử dụng tốt nhất khi gán các khóa chính duy nhất cho hầu hết các bảng cơ sở dữ liệu.
Lợi ích của việc sử dụng khóa chính dạng số, tự động tăng lên là rất nhiều, nhưng lợi ích tác động nhất là tốc độ nhanh hơn khi thực hiện truy vấn và độc lập dữ liệu khi tìm kiếm qua hàng nghìn bản ghi có thể chứa dữ liệu thường xuyên bị thay đổi ở những nơi khác trong bảng. Với mã nhận dạng số nhất quán và duy nhất, các ứng dụng có thể tận dụng các truy vấn nhanh hơn và đáng tin cậy hơn này.
Tạo bảng cơ bản
Sau khi kết nối với Máy chủ SQL của bạn, bạn thường bắt đầu bằng cách CREATING
một bảng mới chứa trường bạn muốn sử dụng làm khóa chính tăng dần của mình. Đối với ví dụ của chúng tôi, chúng tôi sẽ gắn bó với id
đã thử và đúng lĩnh vực:
CREATE TABLE books (
id INT NOT NULL,
title VARCHAR(100) NOT NULL,
primary_author VARCHAR(100),
);
Vấn đề ở đây là, chúng tôi không có cách nào để kiểm soát id
của chúng tôi đồng ruộng. Khi một bản ghi mới được chèn vào, chúng tôi không chỉ phải nhập giá trị cho id
theo cách thủ công , nhưng chúng tôi phải thực hiện truy vấn trước để cố gắng xác minh rằng id
giá trị chưa tồn tại (gần như không thể xảy ra khi xử lý nhiều kết nối đồng thời).
Sử dụng các ràng buộc về danh tính và khóa chính
Giải pháp hóa ra là sử dụng hai tùy chọn ràng buộc do SQL Server cung cấp.
Đầu tiên là PRIMARY KEY
, như tên gợi ý, buộc cột được chỉ định hoạt động như một chỉ mục hoàn toàn duy nhất cho bảng, cho phép tìm kiếm và truy vấn nhanh chóng.
Mặc dù SQL Server chỉ cho phép một PRIMARY KEY
ràng buộc được gán cho một bảng duy nhất, PRIMARY KEY
đó có thể được xác định cho nhiều hơn một cột. Trong trường hợp nhiều cột, các cột riêng lẻ có thể chứa các giá trị trùng lặp, không phải là duy nhất, nhưng PRIMARY KEY
ràng buộc đảm bảo rằng mọi sự kết hợp các giá trị bị ràng buộc trên thực tế sẽ là duy nhất so với mọi kết hợp khác.
Phần thứ hai của câu đố là IDENTITY
ràng buộc, thông báo cho SQL Server tự động tăng giá trị số trong cột được chỉ định bất cứ lúc nào bản ghi mới được INSERTED
. Trong khi IDENTITY
can chấp nhận hai đối số của seed
số nơi các giá trị sẽ bắt đầu từ đó cũng như increment
, các giá trị này thường không được chỉ định bằng IDENTITY
ràng buộc và thay vào đó được để ở dạng mặc định (cả hai đều mặc định là 1
).
Với kiến thức mới này trong tầm tay, chúng tôi có thể viết lại CREATE TABLE
trước đây của mình bằng cách thêm hai ràng buộc mới của chúng tôi.
CREATE TABLE books (
id INT NOT NULL IDENTITY PRIMARY KEY,
title VARCHAR(100) NOT NULL,
primary_author VARCHAR(100),
);
Thats tất cả để có nó. Bây giờ là id
cột books
của chúng tôi bảng sẽ tự động tăng lên sau mỗi INSERT
và id
trường cũng được đảm bảo là một giá trị duy nhất.