Bạn không thể thêm IDENTITY
vào một cột hiện có. Nó chỉ là không thể được thực hiện.
Bạn sẽ cần tạo mới cột loại INT IDENTITY
và sau đó thả cột cũ bạn không cần nữa (và có thể đổi tên cột mới thành tên cũ - nếu cần)
Ngoài ra:Tôi sẽ không thực hiện điều này trong trình thiết kế trực quan - điều này sẽ cố gắng tạo lại bảng với cấu trúc mới, sao chép tất cả dữ liệu (tất cả 10 triệu hàng), và sau đó bỏ bảng cũ.
Sẽ hiệu quả hơn nhiều khi sử dụng các câu lệnh T-SQL thẳng - điều này sẽ thực hiện cập nhật "tại chỗ", không phá hủy (không có dữ liệu nào bị mất) và nó không cần sao chép khoảng 10 triệu hàng trong quá trình này ...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Khi bạn thêm một cột mới thuộc loại INT IDENTITY
vào bảng của bạn, sau đó nó sẽ được tự động điền với các số liên tiếp. Bạn không thể ngăn điều này xảy ra và bạn cũng không thể cập nhật các giá trị sau này.
Cả hai tùy chọn đó đều không thực sự hữu ích, cuối cùng - bạn có thể kết thúc với các giá trị ID khác nhau .... để làm đúng, bạn phải:
- tạo bảng mới trước thời hạn, với cấu trúc thích hợp và
IDENTITY
đã có sẵn - sau đó bật
SET IDENTITY_INSERT (yourtable) ON
trên bảng đó để cho phép các giá trị được chèn vào cột nhận dạng - sao chép dữ liệu này từ nguồn ban đầu
- tắt tính năng chèn lại danh tính:
SET IDENTITY_INSERT (yourtable) OFF
Chỉ với phương pháp này, bạn mới có thể lấy cùng một ID trong cột IDENTITY trong bảng mới của mình.