2009-03-09 65 views

Trả lời

452
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL] 

EDIT Như đã đề cập NULL/NOT NULL nên đã được chỉ định, xem Rob's answer là tốt.

+1

Tại sao nên nó được xác định? Lợi ích là gì? Tất cả mọi thứ tôi muốn để lại vì nó là tôi không phải đề cập đến, tôi nghĩ. –

+2

@TheincredibleJan Điều đó thật tuyệt, nhưng tiếc là nó không hoạt động theo cách đó. Nếu bạn đưa ra lệnh 'ALTER TABLE TableName ALTER COLUMN ColumnName' để thay đổi một cột hiện có là' [NOT NULL] ', và bạn không chỉ rõ nó, nó sẽ là' [NULL] 'sau đó, vì đó là mặc định . – takrl

19

Sử dụng câu lệnh bảng Alter.

Alter table TableName Alter Column ColumnName nvarchar(100) 
156

Đừng quên tính vô hiệu.

ALTER TABLE <schemaName>.<tableName> 
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL] 
+1

Vấn đề với tính vô dụng là gì? Nếu tôi không muốn thay đổi nó - lợi ích trong việc thiết lập lại nó là gì? –

+2

^Nó sẽ mặc định là NULL sau khi câu lệnh bảng thay đổi kết thúc thực thi mà không xác định rõ ràng nó nên là gì. – sc305495

2

Miễn là bạn đang tăng kích thước của vec-tơ, bạn vẫn OK. Theo tham chiếu Alter Table:

Giảm độ chính xác hoặc tỷ lệ của cột có thể gây cắt xén dữ liệu.

-10

Hãy thử điều này:

ALTER TABLE "table_name" 
MODIFY "column_name" "New Data Type"; 
+1

"Sửa đổi" rõ ràng là không chính xác. Hãy so sánh với các câu trả lời khác. – Frank

+0

Đây là cũ, nhưng dường như Kai Tzer đã chứng minh MySql và/hoặc Oracle DDLs. –

9

Cú pháp để sửa đổi một cột trong một bảng hiện có trong SQL Server (Transact-SQL) là:

ALTER TABLE table_name 
    ALTER COLUMN column_name column_type; 

Ví dụ:

ALTER TABLE employees 
    ALTER COLUMN last_name VARCHAR(75) NOT NULL; 

Dịch vụ SQL này Ví dụ er ALTER TABLE sẽ sửa đổi cột được gọi là last_name thành loại dữ liệu của VARCHAR(75) và buộc cột không cho phép giá trị null.

thấy

+1

vui lòng thêm thông tin khác vào câu trả lời của bạn và định dạng mã/truy vấn! –

2

Đối với việc thay đổi kiểu dữ liệu

alter table table_name 
alter column column_name datatype [NULL|NOT NULL] 

Đối với thay đổi Primary key

ALTER TABLE table_name 
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name) 
Các vấn đề liên quan