340

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

4

10 回答 10

622
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
于 2012-04-13T09:12:57.660 回答
45
alter table Employee alter column salary numeric(22,5)
于 2012-04-13T09:12:12.687 回答
36
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
于 2016-05-11T11:26:33.287 回答
22

运行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
于 2017-01-05T01:44:11.713 回答
3

右击要修改的表 --> 选择“设计” --> 更改“数据类型”列中的值,如下图所示:

数据类型列的屏幕截图,其中列的数据类型值发生更改

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

于 2017-01-29T05:59:43.390 回答
3

可以在这里找到有趣的方法:如何在不停机的情况下扩大您的列,由 spaghettidba

如果您尝试使用直接的“ALTER TABLE”命令来扩大该列,您将不得不等待 SQLServer 遍历所有行并写入新的数据类型

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;

为了克服这种不便,您的桌子可以服用一种神奇的列扩大药丸,它被称为行压缩。(...) 使用行压缩,您的固定大小的列只能使用实际数据适合的最小数据类型所需的空间。

当表在ROW级别压缩时,ALTER TABLE ALTER COLUMN只有元数据操作。

于 2020-04-28T20:14:47.337 回答
0

您可以使用ALTER命令来修改表架构。

修改列大小的语法是

ALTER table table_name modify COLUMN column_name varchar (size);
于 2020-09-28T14:51:18.273 回答
0

ALTER TABLE "Employee" MODIFY ("Salary" NUMERIC(22,5));

于 2020-10-23T15:39:21.877 回答
0

对于 Oracle 数据库:

ALTER TABLE table_name MODIFY column_name VARCHAR2(255 CHAR);

于 2021-02-16T14:25:39.700 回答
-1

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

这是它的语法

ALTER TABLE table_name MODIFY column_name varchar(new_length);

于 2021-06-22T07:18:51.923 回答