Hãy bắt đầu với việc tìm hiểu thuộc tính Identity trước và sau đó chúng ta có thể tiến hành bước, chúng ta có thể đặt lại nó bằng cách nào? Tạo bảng SQL Server với cột nhận dạng bằng cách sử dụng tập lệnh bên dưới
USE TEST GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))
Hãy chèn các bản ghi bên dưới bằng cách sử dụng các câu lệnh dưới đây
INSERT INTO dbo.Person(name)
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
Chỉ một bản ghi sẽ được chèn và bản ghi thứ hai sẽ không thành công vì kích thước của chuỗi lớn hơn kích thước của kiểu dữ liệu cột Hình 1-Chèn bản ghi trong bảng SQL Server
Kiểm tra danh tính Giá trị của một cột: Để kiểm tra giá trị nhận dạng của một cột, chúng ta có thể sử dụng câu lệnh dưới đây
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
Fig 2- DBCC CHECKIDENT to see the Identity Value
Ngay cả việc chèn không thành công cho bản ghi thứ hai nhưng giá trị nhận dạng được tăng lên. Nếu chúng ta sẽ chèn bản ghi tiếp theo, giá trị nhận dạng sẽ là 3 cho điều đó như chúng ta có thể thấy trong Hình 3.
Dưới đây là một số cách để đặt lại giá trị nhận dạng của cột sau khi xóa dữ liệu.
Đặt lại Giá trị Nhận dạng bằng cách Sử dụng TRUNCATE: Nếu chúng ta muốn xóa mọi thứ khỏi bảng và bảng không có bất kỳ quan hệ Khóa ngoại nào, chúng ta có thể Cắt bớt bảng và điều đó sẽ làm sạch dữ liệu cũng như đặt giá trị nhận dạng Hình 3-Sử dụng Truncate để làm sạch bảng và đặt lại Giá trị nhận dạng
Đặt lại giá trị nhận dạng bằng cách sử dụng DBCC CHECKIDENT: Nếu bảng có mối quan hệ với bất kỳ mối quan hệ bảng nào khác (Khóa chính-Khóa ngoài), chúng tôi sẽ không thể cắt bớt bảng. Trong trường hợp đó, chúng tôi phải xóa các giá trị khỏi bảng bằng cách sử dụng câu lệnh Delete và sau đó đặt giá trị nhận dạng.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
Hình 4. Xóa dữ liệu khỏi Bảng và sử dụng DBCC CHECKIDENT để gửi lại giá trị nhận dạng
Video Demo:Cách đặt lại Giá trị Cột Danh tính trong Bảng SQL Server