2012-02-23 31 views
34

Tôi có một bảng với số lượng lớn dữ liệu. Tôi muốn thêm cột bổ sung id và sử dụng nó làm khóa chính. Cách tốt hơn để điền vào cột này với các giá trị từ một số 1 đến row countMáy chủ SQL: cách thêm cột nhận dạng mới và điền cột có id?

Hiện tại tôi đang sử dụng con trỏ và cập nhật từng hàng một. Phải mất hàng giờ. Có cách nào để làm điều đó nhanh hơn không?

Cảm ơn bạn

Trả lời

85

Chỉ cần làm điều đó như thế này:

ALTER TABLE dbo.YourTable 
ADD ID INT IDENTITY(1,1) 

và cột sẽ được tạo ra và tự động dân cư với các integer giá trị (như Aaron Bertrand chỉ ra trong bình luận của mình - bạn không có bất kỳ sự kiểm soát nào đối với hàng nào nhận được giá trị nào - SQL Server tự xử lý nó và bạn không thể ảnh hưởng đến nó. Nhưng tất cả các hàng sẽ nhận được một giá trị int hợp lệ - sẽ không có bất kỳ giá trị trùng lặp nào NULL).

Tiếp theo, thiết lập nó như là khóa chính:

ALTER TABLE dbo.YourTable 
ADD CONSTRAINT PK_YourTable PRIMARY KEY(ID) 
+2

+1, nhưng tôi hy vọng những cái tên OP nó một cái gì đó mô tả nhiều hơn sau đó 'ID' như 'WidgetID' vv –

+0

@KM: hy vọng mỏng - ông thực sự được đề cập trong câu hỏi của anh ấy rằng anh ấy muốn thêm 'id' :-) –

+17

Tôi thích id. WidgetID có vẻ giống như một khóa ngoại. Vì vậy, tôi hy vọng anh ta không –

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