Tôi đang sử dụng mã này để thiết lập lại bản sắc trên một bảng:DBCC CHECKIDENT Thiết lập nhận dạng 0
DBCC CHECKIDENT('TableName', RESEED, 0)
này hoạt động tốt hầu hết thời gian, với sự chèn đầu tiên tôi chèn 1 vào cột Id . Tuy nhiên nếu tôi thả db và tạo lại nó (sử dụng kịch bản tôi đã viết) và sau đó gọi DBCC CHECKIDENT, mục đầu tiên được chèn sẽ có ID là 0.
Bất kỳ ý tưởng nào?
EDIT: Sau khi nghiên cứu tôi phát hiện ra tôi đã không đọc các tài liệu hướng dẫn đúng cách:. http://msdn.microsoft.com/en-us/library/aa258817(SQL.80).aspx - "Giá trị bản sắc hiện tại được thiết lập để các new_reseed_value Nếu không có hàng đã được đưa lên bàn vì nó được tạo ra, hàng đầu tiên chèn sau khi thực hiện DBCC CHECKIDENT sẽ sử dụng new_reseed_value như danh tánh. Nếu không, hàng tiếp theo sẽ sử dụng chèn new_reseed_value + 1. "
liên kết đó dường như bị chết, tài liệu hiện tại https://msdn.microsoft.com/en-us/library/ms176057.aspx, nói rằng đó chỉ là hành vi mong đợi cho các phiên bản trước năm 2012, nhưng điều đó dường như không đúng (thử nghiệm trên phiên bản 2012, khả năng tương thích được đặt thành năm 2012, vẫn gặp sự cố). – jmoreno