在SQL Server中更改列大小

时间:2012-04-13 09:09:21

标签: sql sql-server database tsql alter-table

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

10 个答案:

答案 0 :(得分:405)

ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL

答案 1 :(得分:37)

alter table Employee alter column salary numeric(22,5)

答案 2 :(得分:16)

在不提及属性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

答案 3 :(得分:15)

ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)

答案 4 :(得分:3)

选择表格 - >设计 - >更改数据类型中的值,如下图所示。

enter image description here

保存表格设计。

答案 5 :(得分:2)

有趣的方法可以在这里找到:How To Enlarge Your Columns With No Downtime by spaghettidba

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

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;

为克服这种不便,您的桌子上可以装一个神奇的立柱加药药,叫做行压缩”。(...) 使用行压缩时,固定大小的列只能使用实际数据可容纳的最小数据类型所需的空间。

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

答案 6 :(得分:0)

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

修改列大小的语法是

ALTER table table_name modify COLUMN column_name varchar (size);

答案 7 :(得分:0)

修改ALTER TABLE“雇员”(“薪水” NUMERIC(22,5));

答案 8 :(得分:0)

对于 Oracle 数据库:

ALTER TABLE table_name MODIFY column_name VARCHAR2(255 CHAR);

答案 9 :(得分:0)

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

这是它的语法

ALTER TABLE 表名 修改列名 varchar(new_length);