Trường Id tự tăng

Trong SQL SERVER, bạn có thể cài đặt trường Id có giá trị tự tăng, không trùng lặp. Điều này giúp cho các bạn insert dữ liệu vào bảng dễ dàng hơn mà không cần kiểm tra ràng buộc PRIMARY KEY.

Để làm điều này, bạn cần một trường PRIMARY KEY nhận kiểu số như kiểu int và bạn thêm từ khóa IDENTITY(Giá trị ban đầu, giá trị tăng lên).

Ví dụ: tạo bảng Persons có trường Id tự tăng

--Sử dụng database Master
USE master
--Kiểm tra database có tồn tại hay không rồi mới xóa
IF EXISTS(select * from sys.databases where name='Test')
DROP DATABASE Test
CREATE DATABASE Test 

GO 

USE Test;

CREATE TABLE Persons 
  ( 
     Id        int PRIMARY KEY IDENTITY( 1, 1 ), 
     FirstName varchar(20), 
     LastName  varchar(20), 
  ); 

Trường Id của bảng Persons, được định nghĩa IDENTITY( 1 , 1 ). Bây giờ chúng ta sẽ insert dữ liệu vào bảng này để hiểu rõ hơn về cách thức hoạt động của nó.

INSERT INTO Persons 
VALUES     ( 'FirstName 1', 
             'LastName 1' ); 

INSERT INTO Persons 
VALUES     ( 'FirstName 2', 
             'LastName 2' ); 

Khi một khóa chính được định nghĩa IDENTITY thì bạn không cần phải cho nó vào câu lệnh insert nữa vì giá trị của nó đã được tăng tự động. Như vậy ở câu lệnh insert phía trên, giá trị đầu tiên ứng với cột FirstName, giá trị thứ hai ứng với cột LastName.

Kiểm tra bảng Persons.

select * from Persons

Cột Id được tự động tăng giá trị. Vậy IDENTITY( 1 , 1 ) ở ví dụ trên nghĩa là gì?

Số 1 đầu tiên nghĩa là giá trị ban đầu của Id, nếu chúng ta để 10 hoặc 100, thì giá trị Id đầu tiên sẽ là 10 hoặc 100 chứ không phải 1.

Số 1 thứ hai nghĩa là giá trị tăng lên, tức là mỗi lần insert dữ liệu, giá trị sẽ tăng lên bao nhiêu đơn vị, như trong này mỗi lần insert dữ liệu, giá trị của trường Id sẽ tăng lên 1 đơn vị, do vậy record thứ hai có giá trị là 2.

Để hiểu rõ hơn, xin hãy đọc ví dụ sau:

--Sử dụng database Master
USE master
--Kiểm tra database có tồn tại hay không mới xóa
IF EXISTS(select * from sys.databases WHERE name='Test')
DROP DATABASE Test
CREATE DATABASE Test 

GO 

USE Test;

CREATE TABLE Customers 
  ( 
     Id        int PRIMARY KEY IDENTITY( 100, 2 ), 
     FirstName varchar(20), 
     LastName  varchar(20), 
  ); 


INSERT INTO Customers 
VALUES     ( 'FirstName 1', 
             'LastName 1' ); 

INSERT INTO Customers 
VALUES     ( 'FirstName 2', 
             'LastName 2' ); 

SELECT * FROM   Customers; 

Khi bạn thực hiện câu lệnh SELECT kết quả sẽ là:

kết quả select

Lí do Id đầu tiên nhận 100 và thứ hai là 102  vì chúng ta định nghĩa IDENTITY( 100 , 2 ) cột Id nhận giá trị ban đầu là 100 và giá trị tăng lên qua mỗi lần là 2.

Các môn học khác

HTTP giúp kết nối các máy tính trên mạng Internet thông qua TCP/IP

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.