如何将salary
表格中employee
列的列大小从numeric(18,0)
更改为numeric(22,5)
答案 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)
答案 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);