2012-06-20 53 views

Trả lời

23

Làm theo các bước sau: -

1). Xóa dữ liệu cũ khỏi bảng.

2). Sử dụng ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)

3). Bây giờ một lần nữa ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier

Để được rõ ràng, bạn không thể chuyển đổi một cột từ số để uniqueIdentifier trực tiếp,

nhưng bạn có thể chuyển đổi số -> varchar -> uniqueidentifier.

4

Bạn cần phải thêm cột đầu tiên (có thể với một mặc định hoặc nullable để cột có thể được thêm thành công vào các hàng có dữ liệu hiện có), cập nhật nó thành giá trị bạn muốn hoặc cần, thay đổi bất kỳ phím nào (nếu đó là khóa chính thay đổi nó sang cột mới và sau đó thay đổi bất kỳ chìa khóa cho bảng này), sau đó xóa cột cũ và thay đổi cột mới nếu cần (ví dụ: thiết lập hạt giống nhận dạng, loại bỏ nullable, vv).

+0

Tôi đã xóa tất cả dữ liệu khỏi bảng. – Visions

+0

Tôi hiểu. Trong trường hợp đó, bạn cũng có thể thay đổi nó thành 'binary (16)' trước và sau đó thành 'bigint' - không được kiểm tra nhưng theo như tôi nhớ SQL Server cho phép điều này miễn là không có dữ liệu nào bị cắt bớt trong tiến trình. – Lucero

3

Lưu ý cho người sử dụng Entity Framework:
Rõ ràng, nếu bạn có một cơ sở dữ liệu lớn với các mối quan hệ phức tạp, thả tất cả các mối quan hệ và cột ID, và tái bổ sung chúng là một thử thách rất lớn.

Đó là nhiều dễ dàng cập nhật mô hình được tạo (.edmx) hơn.

Có, Visual Studio cho phép bạn cập nhật loại dữ liệu mà không cần phàn nàn. Trong thực tế, khi bạn lưu tệp .edmx, các mối quan hệ sẽ được xác thực; bất kỳ trường nào bạn có thể đã bỏ lỡ sẽ hiển thị dưới dạng lỗi.

Sau khi bạn hoàn tất, bạn có thể tạo lại cơ sở dữ liệu từ mô hình. Boom, xong rồi.

0

Nếu câu trả lời của Singh không hoạt động thì bạn có thể phải bỏ bảng và tạo lại bảng.

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