Tôi đang cố gắng thay đổi một cột từ một varchar (50) thành nvarchar (200). Lệnh SQL để thay đổi bảng này là gì?Làm thế nào để bạn thay đổi kiểu dữ liệu của một cột trong MS SQL?
Trả lời
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.
Sử dụng câu lệnh bảng Alter.
Alter table TableName Alter Column ColumnName nvarchar(100)
Đừng quên tính vô hiệu.
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
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ì? –
^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
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.
Hãy thử điều này:
ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
"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
Đây là cũ, nhưng dường như Kai Tzer đã chứng minh MySql và/hoặc Oracle DDLs. –
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
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! –
Đố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)
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ĩ. –
@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