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

时间:2009-03-09 16:06:41

标签: sql-server sql-server-2008 tsql type-conversion alter-table

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

10 个答案:

答案 0 :(得分:527)

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

修改 如前所述,应该指定NULL / NOT NULL,也请参见Rob's answer

答案 1 :(得分:169)

不要忘记可空性。

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

答案 2 :(得分:21)

使用Alter表语句。

Alter table TableName Alter Column ColumnName nvarchar(100)

答案 3 :(得分:11)

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

请参阅here

答案 4 :(得分:3)

只要你增加varchar的大小就可以了。根据{{​​3}}参考:

  

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

答案 5 :(得分:2)

用于更改数据类型

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

更改主键

ALTER TABLE table_name  
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)

答案 6 :(得分:2)

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

答案 7 :(得分:1)

在 11g 中:

ALTER TABLE TableName
Modify ColumnName DataType;

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

答案 8 :(得分:0)

ALTER TABLE [性能].[dbo].[CRA_283_Violation] ALTER COLUMN [Throughput_HS_DC_NodeB_3G_Alarm] 位

答案 9 :(得分:-9)

试试这个:

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