379

我正在尝试将列从 a 更改varchar(50)为 a nvarchar(200)。更改此表的 SQL 命令是什么?

4

10 回答 10

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

编辑 如前所述,应该指定 NULL/NOT NULL,也请参见Rob 的回答

于 2009-03-09T16:07:33.507 回答
181

不要忘记可空性。

ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
于 2009-03-11T16:38:07.610 回答
24

使用 Alter table 语句。

Alter table TableName Alter Column ColumnName nvarchar(100)
于 2009-03-09T16:08:01.727 回答
14

在 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 ServerALTER TABLE示例会将调用的列修改为last_name数据类型,VARCHAR(75)并强制该列不允许空值。

这里

于 2015-10-11T21:15:59.377 回答
6

用于更改数据类型

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

用于更改主键

ALTER TABLE table_name  
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
于 2016-09-26T20:12:49.020 回答
5

只要您增加 varchar 的大小,就可以了。根据Alter Table参考:

降低列的精度或小数位数可能会导致数据截断。

于 2014-12-23T18:25:05.323 回答
5
ALTER TABLE [dbo].[TableName]
ALTER COLUMN ColumnName VARCHAR(Max) NULL
于 2020-03-05T07:53:17.630 回答
2

11克:

ALTER TABLE TableName
Modify ColumnName DataType;

EG: ALTER TABLE 员工修改 BIRTH_DATE VARCHAR(30);

于 2021-03-09T06:15:32.863 回答
0
ALTER TABLE [Performance].[dbo].[CRA_283_Violation]
ALTER COLUMN [Throughput_HS_DC_NodeB_3G_Alarm] bit
于 2021-04-06T06:42:14.923 回答
-11

试试这个:

ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
于 2015-01-29T13:50:38.850 回答