Как вы измените тип данных столбца в SQL Server? - PullRequest
315 голосов
/ 09 марта 2009

Я пытаюсь изменить столбец с varchar(50) на nvarchar(200). Что такое команда SQL, чтобы изменить эту таблицу?

Ответы [ 7 ]

528 голосов
/ 09 марта 2009
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]

EDIT Как отмечалось, должен быть указан NULL / NOT NULL, см. Также Ответ Роба .

169 голосов
/ 11 марта 2009

Не забывайте об обнуляемости.

ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
22 голосов
/ 09 марта 2009

Используйте оператор таблицы Alter.

Alter table TableName Alter Column ColumnName nvarchar(100)
11 голосов
/ 12 октября 2015

Синтаксис для изменения столбца в существующей таблице в SQL Server (Transact-SQL):

ALTER TABLE table_name
    ALTER COLUMN column_name column_type;

Например:

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

Этот пример SQL Server ALTER TABLE изменит столбец с именем last_name на тип данных VARCHAR(75) и заставит столбец не разрешать нулевые значения.

см. здесь

3 голосов
/ 23 декабря 2014

Пока вы увеличиваете размер своего varchar, все в порядке. Согласно Изменить таблицу Ссылка:

Уменьшение точности или масштаба столбца может привести к усечению данных.

2 голосов
/ 26 сентября 2016

Для изменения типа данных

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

Для изменения первичного ключа

ALTER TABLE table_name  
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
0 голосов
/ 29 января 2015

Попробуйте это:

ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
...