Bạn không thể thay đổi loại cột tại chỗ. Bạn cần phải tạo một cột mới, sao chép các giá trị trên, và sau đó thả cột ban đầu.
SQL Management Studio thường thực hiện việc này bằng cách tạo bảng tạm thời với tên cột mới, sao chép các giá trị trên, thả bảng gốc với cột cũ và sau đó đổi tên bảng tạm thời mới thành tên mới. Thường thì nó thực hiện điều này mà không có ai thậm chí nhận ra nó. Tuy nhiên, đây có thể là một cách tiếp cận rất xâm lấn, đặc biệt nếu bạn đã có nhiều hàng trong bảng, vì vậy bạn có thể chỉ cần viết một kịch bản lệnh SQL thêm cột mới vào bảng, sao chép các giá trị trên, thả cột ban đầu, và sau đó sử dụng sp_rename để thay đổi tên cột tạm thời mới trở lại tên cột ban đầu. Đây là ý tưởng giống như những gì SQL Management Studio đang làm, ngoại trừ việc chúng đang giảm và tái tạo toàn bộ bảng, và bạn chỉ cần thả và tạo lại cột.
Tuy nhiên, nếu bạn KHÔNG muốn để SQL Manangement Studio làm theo cách này, bạn có thể tắt thông báo lỗi đó. Tôi tin rằng nó ban đầu được thêm vào bởi vì mọi người không muốn bỏ đi và tạo lại bảng theo mặc định. Để tắt thông báo này, hãy chuyển đến Công cụ-> Tùy chọn-? Nhà thiết kế và bỏ chọn "Ngăn lưu thay đổi yêu cầu tạo lại bảng", sau đó bạn sẽ có thể lưu các thay đổi của mình trong nhà thiết kế.
Nguồn
2011-12-08 11:59:38
Chắc chắn bạn có thể chuyển đổi này - nhưng làm như vậy, các nhà thiết kế hình ảnh trong SQL Server Mgmt Studio sẽ tạo ra bảng mới của bạn với 'DATETIME', sao chép dữ liệu, và sau đó thả bảng cũ, và có một tùy chọn trong 'Công cụ> Tùy chọn' để ngăn chặn điều đó theo mặc định - xem câu trả lời của tôi –