我试图在不丢失内容的情况下将varchar列的长度从255个字符更新为500。我之前已经删除并重新创建了表,但我从来没有接触过alter语句,这是我认为我需要使用的。我在这里找到了文档:ALTER TABLE (Transfact-SQL),但我不能让它的头或尾。

到目前为止,我有以下(不幸的是,基本上没有):

alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3

我该怎么做呢?有没有更好的关于这条语句的文档(我搜索了一些示例语句,但一无所获)?


当前回答

对于MariaDB,使用modify列:

ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR (500);

它会起作用的。

其他回答

使用ALTER增加列的大小不会丢失任何数据:

alter table [progennet_dev].PROGEN.LE 
    alter column UR_VALUE_3 varchar(500) 

正如@Martin指出的,记得显式指定NULL | NOT NULL

作为一种替代方法,您可以保存旧数据并使用新参数创建一个新表。

在SQL Server Management Studio中:"your database" => task => generatescripts => select specific database object => "your table" => advanced =>类型的数据以script - schema和data =>生成

就我个人而言,我是这么做的。

使用IntelliJ中的Maria-DB和DB-Navigator工具,MODIFY Column代替Alter Column为我工作

对于MariaDB,使用modify列:

ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR (500);

它会起作用的。

对于MySQL或dbms(而不是MSSQL),您可能需要使用modify而不是alter来表示列值:

ALTER TABLE `table name` 
modify COLUMN `column name` varchar("length");