如何更改 T-SQL Server 中列的数据类型?

问题描述 投票:0回答:11

我正在尝试将列从

varchar(50)
更改为
nvarchar(200)
。更改此表的 SQL 命令是什么?

sql-server t-sql type-conversion alter-table
11个回答
720
投票
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]

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


206
投票

不要忘记可空性。

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

30
投票

使用 Alter table 语句。

Alter table TableName Alter Column ColumnName nvarchar(100)

16
投票

修改 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)
的数据类型,并强制该列不允许为空值。

参见这里


8
投票
ALTER TABLE [dbo].[TableName]
ALTER COLUMN ColumnName VARCHAR(Max) NULL

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)

4
投票

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

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


0
投票

11克中:

ALTER TABLE TableName
Modify ColumnName DataType;

EG: 更改表员工 修改 BIRTH_DATE VARCHAR(30);


-2
投票
ALTER TABLE [Performance].[dbo].[CRA_283_Violation]
ALTER COLUMN [Throughput_HS_DC_NodeB_3G_Alarm] bit

-3
投票

最初的问题是针对“SQL Server”的 但是,如果您在使用 MySql 服务器时阅读这篇文章, “ALTER COLUMN”不能用于更改列类型

要更改 MYSQL 服务器上的列类型,您可以使用:

ALTER TABLE `USER`
    MODIFY SESSION_ID VARCHAR(100) NULL;

我使用上面的行将带有 MySql 服务器的列从 varchar(20) 扩展到 varchar(100)。


-14
投票

试试这个:

ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
© www.soinside.com 2019 - 2024. All rights reserved.