2012-04-13 49 views

Trả lời

283
ALTER TABLE [Employee] 
ALTER COLUMN [Salary] NUMERIC(22,5) 
+3

Hãy cẩn thận, nếu bạn đang thay đổi cột trong một dữ liệu rất lớn. Bạn có thể gây ra một vụ tai nạn (trên môi trường của tôi anyway). – DavidTheDev

+34

Điều quan trọng là nếu cột có thuộc tính 'NOT NULL' thì nó phải được đề cập trong truy vấn khác, nó sẽ đặt nó thành' NULL' theo mặc định. 'ALTER TABLE [Employee] ALTER COLUMN [Mức lương] NUMERIC (22,5) NOT NULL' –

+0

Nếu bạn có chỉ mục trên cột đó, bạn sẽ phải xóa nó, sau đó thực hiện thay đổi mã bảng và sau đó tạo chỉ số một lần nữa –

30
alter table Employee alter column salary numeric(22,5) 
10
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150) 
10

Chạy ALTER COLUMN mà không đề cập thuộc tính NOT NULL sẽ cho kết quả trong cột được thay đổi để nullable, nếu nó đã không. Do đó, trước tiên bạn cần kiểm tra xem cột có thể vô hiệu và nếu không, hãy chỉ định thuộc tính NOT NULL. Ngoài ra, bạn có thể sử dụng câu lệnh sau để kiểm tra tính khả dụng của cột trước và chạy lệnh với thuộc tính đúng.

IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0 
    ALTER TABLE [Employee] 
     ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL 
ELSE   
    ALTER TABLE [Employee] 
     ALTER COLUMN [Salary] NUMERIC(22,5) NULL 
+0

Cảm ơn bạn đã lưu ý về những thứ vô giá trị! – user3341592

0

Chọn bảng -> Thiết kế -.> Thay đổi giá trị trong Data Type thể hiện trong hình sau

enter image description here

Lưu bảng thiết kế.

+2

Nó không hoạt động mọi lúc –

+0

kiểm tra đúng cách có thể là bạn đang thiếu một số bước. –

+0

nó không hoạt động nếu bạn đã có giá trị trên bảng –

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