如何将员工表中工资列的列大小从数字(18,0)更改为数字(22,5)
运行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”——>修改“Data Type”列的值,如下图所示:
然后保存以完成对表设计的更改。
小表采用GUI方法。 你在大的表中做改变,然后只使用命令,并排检查阻塞是否发生,直到命令完成。
有趣的方法可以在这里找到:如何扩大你的专栏没有停机由spaghettidba
If you try to enlarge this column with a straight “ALTER TABLE” command, you will have to wait for SQLServer to go through all the rows and write the new data type ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type; To overcome this inconvenience, there is a magic column enlargement pill that your table can take, and it’s called Row Compression. (...) With Row Compression, your fixed size columns can use only the space needed by the smallest data type where the actual data fits.
当表在ROW级别被压缩时,ALTER table ALTER COLUMN是仅元数据的操作。
可以使用ALTER命令修改表模式。
修改列大小的语法为
ALTER table table_name modify COLUMN column_name varchar (size);
在这种情况下,您需要使用ALTER TABLE语句来增加列的大小。
下面是它的语法
ALTER TABLE table_name 修改column_name varchar (new_length);
推荐文章
- 我如何在T-SQL用逗号格式化一个数字?
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- Postgres唯一约束与索引
- SQL Server动态PIVOT查询?
- 如何等待2秒?
- SQL Server: CROSS JOIN和FULL OUTER JOIN的区别是什么?
- MySQL对重复键更新在一个查询中插入多行
- varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?
- 使用{merge: true}设置的Firestore与更新之间的差异
- 向现有表添加主键
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败