Đặt lại giá trị Identity Seed của một trường (cột) tự tăng trong Sql Server

Đặt lại giá trị Identity Seed của một trường (cột) tự tăng trong Sql Server

Đặt lại giá trị Identity Seed của một trường (cột) tự tăng trong Sql Server

Tình huống 1

Khi ta muốn xóa trắng dữ liệu của mội bảng, có thể dùng lệnh truncate table. Đối với những bảng có khóa ngoại thì không thể thực hiện được lệnh trên. Nên nhiều khi lười không muốn xóa liên kết 1-nhiều, truncate hoặc drop rồi tạo lại, ta dùng lệnh delete from tablename luôn. Bây giờ mong muốn là cột tự tăng (identity) có seed quay trở về 1 khi insert record mới vào.

Tình huống 2

Đơn giản ta muốn ID tự tăng bắt đầu từ một số khác lớn hơn số sắp sắp tới. (1001 thay vì 24 chẳng hạn)

Giải pháp (cho SQL SERVER)

Sử dụng lệnh sau:

-- cho trường hợp muốn seed sắp tới là 1
DBCC CHECKIDENT('tablename', RESEED, 0)

-- cho trường hợp muốn seed sắp tới là 1001
DBCC CHECKIDENT('tablename', RESEED, 1000)

Lưu ý, để chạy được lệnh trên thì bạn cần có đủ quyền

Khi trích dẫn bài viết từ tek.eten.vn, xin vui lòng ghi rõ nguồn. Chúng tôi sẽ rất cảm ơn bạn!