在SQL Server中更改列大小

如何将employee表中salary列的列大小从numeric(18,0)更改为numeric(22,5)

950774 次浏览
alter table Employee alter column salary numeric(22,5)
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)

运行ALTER COLUMN而不提及属性NOT NULL将导致该列被更改为可空,如果它已经不是。因此,您需要首先检查列是否为空,如果不是,则指定属性NOT NULL。或者,您可以使用下面的语句预先检查列的可空性,并运行具有正确属性的命令。

IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NULL

右键单击要修改的表—>选择“Design"——比;更改“数据类型”中的值。列如下图所示:

数据类型列的截图,其中一个列的数据类型值正在发生变化

然后保存以完成对表设计的更改。

GUI方法用于小表。 如果你在大的表中进行更改,那么只使用命令,并排检查阻塞是否发生,直到命令完成

这里可以找到有趣的方法:如何放大你的专栏没有停机由spaghettidba

如果你试图用一个直接的“ALTER TABLE”命令来放大这个列,您将不得不等待SQLServer遍历所有行并写入新的数据类型

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
为了克服这种不便,有一个神奇的列扩大药丸,你的表可以服用,它被称为行压缩。(…) 使用行压缩,固定大小的列只能使用实际数据适合的最小数据类型所需的空间

当表在ROW级别被压缩时,则ALTER TABLE ALTER COLUMN是仅元数据操作。

可以使用ALTER命令修改表模式。

修改列大小的语法为

ALTER table table_name modify COLUMN column_name varchar (size);

ALTER TABLE ';Employee"修改(“Salary"5)数字(22日);

对于Oracle数据库:

ALTER TABLE table_name MODIFY column_name VARCHAR2(255 CHAR);

在这种情况下,您需要使用ALTER TABLE语句来增加列的大小。

下面是它的语法

ALTER TABLE table_name . 修改column_name varchar (new_length); < / p >