Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Giá trị trùng lặp trong cột nhận dạng

Tôi đã kiểm tra những gì Giogri nói và nếu bạn bật Đặc tả nhận dạng (ít nhất là trên phiên bản 2008, có thể là các phiên bản khác) sau khi bảng có hàng, DB sẽ bắt đầu đánh số ở giá trị số nguyên cao nhất. Nếu bạn có một hàng với 100 làm giá trị cột, thì hãy bật Identity, lần chèn tiếp theo sẽ là 101. Ngay cả với Identity Seed được chỉ định là 1. Đó không phải là điều tôi mong đợi, nhưng đó là điều đã xảy ra.

Ngoài SET IDENTITY INSERT , cũng có một lệnh được gửi lại. DBCC CHECKIDENT lệnh này sẽ đặt lại các giá trị nhận dạng của bạn trở lại những gì bạn chỉ định.

Cho rằng việc bật Đặc tả nhận dạng thực sự bắt đầu từ số nguyên cao nhất trong cột, ai đó có thể đã sử dụng SET IDENTITY_INSERT hoặc đã có DBCC CHECKIDENT .

Cách nhanh nhất để gửi lại chuỗi như Andomar nói là thả / tạo lại cột như thế này

ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY

SET IDENTITY_INSERT tài liệu: http://msdn.microsoft.com/ en-us / library / aa259221 (SQL.80) .aspx
DBCC CHECKIDENT tài liệu: http://msdn.microsoft.com/ en-us / library / aa258817 (SQL.80) .aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải quyết quá tải không thành công vì không thể gọi 'mới' có thể truy cập được nếu không có chuyển đổi thu hẹp

  2. Câu lệnh sao lưu dòng lệnh SQL Server

  3. Di chuyển bảng máy chủ SQL sang nhóm tệp khác nhau

  4. T-SQL - CHỌN theo ngày gần nhất và NHÓM THEO ID

  5. SQL Server - Ưu và nhược điểm của Dirty Reads