2010-11-12 39 views
8

Tôi có thể sử dụng lệnhcột sắc gieo hạt trên cơ sở dữ liệu

DBCC CHECKIDENT(<table_name>, RESEED, value) 

để thiết lập lại một cột giá trị bản sắc hiện tại đến một gốc trong SQL Server 2008?

Nếu có, đây có phải là cách đúng để thực hiện thao tác này mà không có bất kỳ hạn chế nào không? Nếu không, có cách nào khác để thực hiện việc này không?

+1

Câu hỏi của bạn là gì? – Andomar

+2

Thực tế có ba câu hỏi ở đây. Tôi chắc chắn bạn có thể nhìn thấy chúng ... nếu bạn cần giải thích thêm chỉ cần hỏi – Lorenzo

Trả lời

7

Tôi có thể sử dụng lệnh DBCC CHECKIDENT để đặt lại giá trị hiện tại của cột nhận dạng thành giá trị gốc trong SQL Server 2008 không?

Có.

Nếu có, đây có phải là cách đúng để thực hiện thao tác này mà không có bất kỳ hạn chế nào không?

Đây là cách được làm tài liệu.

Những hạn chế có thể xảy ra: bạn có thể nhận được các giá trị trùng lặp IDENTITY - không có bảo đảm nào từ SQL Server rằng nó sẽ không trả lại giá trị chưa được sử dụng.

Ví dụ: nếu IDENTITY hiện tại của bạn là 100 và bạn đặt lại thành 1, rất có thể là sớm hay muộn, nó sẽ tạo ra một giá trị đã được sử dụng.

IDENTITY như được triển khai trong SQL Server không kiểm tra các giá trị hiện có hoặc bất kỳ thứ gì - nó chỉ tạo ra các số tuần tự. Tùy thuộc vào bạn - đặc biệt nếu bạn đã thực hiện một số RESEED trên số IDENTITY đó để đảm bảo các giá trị không bị trùng lặp.

10

Giá trị có thể được bỏ qua. Vì vậy, nếu bạn sử dụng

DBCC CHECKIDENT (<table_name>, RESEED); 

SQL Server đặt giá trị nhận dạng thành số tiếp theo chính xác - theo số đã được sử dụng. Đây là cách duy nhất để thay thế các giá trị nhận dạng mà tôi biết.

+0

Điều này did'nt làm việc cho đến khi tôi đưa ra giá trị reseed rõ ràng – Niraj

+0

EG: Đặt danh tính của bạn để bắt đầu tại 2000: 'DBCC CHECKIDENT (, RESEED, 2000) ' – Tr1stan

0

Nó có một nhược điểm lớn nếu và chỉ khi feild là khóa chính và tham chiếu đến bất kỳ khóa ngoại nào trong bất kỳ bảng nào khác. việc nhập lại giúp tìm nạp các bản ghi trong bảng giao dịch có các chỉ mục trên trường.

Các vấn đề liên quan