Câu trả lời:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
thì nó phải được đề cập trong truy vấn khác, nó sẽ đặt nó NULL
theo mặc định. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
alter table Employee alter column salary numeric(22,5)
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Chạy ALTER COLUMN
mà không đề cập đến thuộc tính NOT NULL
sẽ dẫn đến cột bị thay đổi thành nullable, nếu nó đã không. Do đó, trước tiên bạn cần kiểm tra xem cột có thể không và nếu không, 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 vô hiệu 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
Chọn bảng -> Thiết kế -> thay đổi giá trị trong Kiểu dữ liệu được hiển thị trong Hình sau.
Lưu bảng thiết kế.
Cách tiếp cận thú vị có thể được tìm thấy ở đây: Làm thế nào để phóng to các cột của bạn mà không bị ngừng hoạt động bởi spaghettidba
Nếu bạn cố gắng phóng to cột này bằng lệnh ALTER TABLE trực tiếp, bạn sẽ phải đợi SQLServer đi qua tất cả các hàng và viết kiểu dữ liệu mới
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Để khắc phục sự bất tiện này, có một viên thuốc phóng to cột ma thuật mà bảng của bạn có thể uống, và nó được gọi là Row nén. (...) Với Nén hàng, các cột có kích thước cố định của bạn chỉ có thể sử dụng không gian cần thiết cho loại dữ liệu nhỏ nhất có dữ liệu thực tế phù hợp.
Khi bảng được nén ở ROW
mức, thì ALTER TABLE ALTER COLUMN
siêu dữ liệu chỉ hoạt động.