更改varchar列的最大长度?

时间:2012-01-12 01:34:48

标签: sql sql-server sql-server-2008 tsql varchar

我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容。我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的。我在这里找到了文档:ALTER TABLE (Transfact-SQL)但是我无法做出正面或反面。

到目前为止,我有以下内容(基本上没有任何遗憾):

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

我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?

10 个答案:

答案 0 :(得分:305)

你需要

ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]

但请记住,如果需要,请明确指定NOT NULL

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;

如果您未指明如下......

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);

然后该列将默认允许空值,即使它最初定义为NOT NULL。即省略ALTER TABLE ... ALTER COLUMN中的规范始终被视为。

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;

此行为与使用ALTER TABLE(或CREATE TABLE时间)创建的新列的行为不同。默认的可为空性取决于ANSI_NULL_DFLT设置。

答案 1 :(得分:22)

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

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

正如@Martin指出的那样,请记住明确指定NULL | NOT NULL

答案 2 :(得分:4)

ALTER TABLE table name 修改COLUMN column name varchar(&#34; length&#34;);

答案 3 :(得分:2)

在 Oracle SQL Developer 中

ALTER TABLE car_details 修改扭矩 VARCHAR(100);

答案 4 :(得分:1)

ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);

最后一个问题-但我使用的是 Oracle SQL Developer ,@ anonymous的回答是最接近的,但一直收到语法错误,直到我对此查询进行了编辑。

希望这对某人有帮助

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我也一直怀疑,对我有用的是

ALTER TABLE `your_table` CHANGE `property` `property` 
VARCHAR(whatever_you_want) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;  

答案 7 :(得分:0)

这在db2中对我有用:

alter table "JOBS"  alter column "JOB_TITLE" set  data type varchar(30);

答案 8 :(得分:0)

或者,您可以保存旧数据并使用新参数创建新表。

see image

在SQL Server Management Studio中:“您的数据库” =>任务=> generatescripts =>选择特定的数据库对象=>“您的表” =>高级=>要编写脚本的数据类型-模式和数据=>生成

我个人是这样做的。

答案 9 :(得分:0)

对于MariaDB,请使用修改列

ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR (500);

它将起作用。