如何将员工表中工资列的列大小从数字(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

其他回答

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

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

下面是它的语法

ALTER TABLE table_name 修改column_name varchar (new_length);

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

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

修改列大小的语法为

ALTER table table_name modify COLUMN column_name varchar (size);