Tôi đã có một vấn đề khác thường ngày hôm qua, nơi tôi đột nhiên không thể chèn bản ghi vào một bảng với một cột nhận dạng.Điều gì có thể khiến cột IDENTITY bị hỏng?
Một chèn đơn giản như thế này: INSERT INTO MyTable GIÁ TRỊ (COLUMN1, column2) ('text', 236.764)
Bắt đầu ném một sự vi phạm ràng buộc khoá chính.
Tôi chạy DBCC CHECKIDENT trên bảng và nhận ra rằng SQL Server đã ngừng cập nhật giá trị được sử dụng cuối cùng, để khi nó được chèn, nó tăng dần bằng giá trị cũ và giá trị nhận dạng mới thường tồn tại trong bảng, do đó các lỗi vi phạm.
Giải quyết vấn đề không phải là vấn đề, tôi vừa mới nhập lại bảng cho số thứ tự cao nhất tiếp theo, nhưng tôi chưa bao giờ thấy điều này xảy ra trước đây!
Có ai có bất kỳ ý tưởng nào có thể khiến SQL Server ngừng cập nhật thuộc tính nhận dạng và nơi tôi có thể tìm bằng chứng không? Không có sự sao chép hoặc bất kỳ trình kích hoạt nào liên quan, nó chỉ là một bảng cũ đơn giản.
EDIT: SQL Log Rescue sẽ là lý tưởng, nhưng nó chỉ hoạt động trên SQL Server 2000. Có một công cụ tương tự trên đó cho các bản ghi SQL 2005 không?
Xem câu trả lời khác, identity_insert dường như không làm điều đó. – user12861