我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容。我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的。我在这里找到了文档:ALTER TABLE (Transfact-SQL)但是我无法做出正面或反面。
到目前为止,我有以下内容(基本上没有任何遗憾):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?
答案 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)
或者,您可以保存旧数据并使用新参数创建新表。
在SQL Server Management Studio中:“您的数据库” =>任务=> generatescripts =>选择特定的数据库对象=>“您的表” =>高级=>要编写脚本的数据类型-模式和数据=>生成>
我个人是这样做的。
答案 9 :(得分:0)
对于MariaDB,请使用修改列:
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR (500);
它将起作用。