我试图在不丢失内容的情况下将varchar列的长度从255个字符更新为500个字符。我以前删除过并重新创建过表,但我从来没有接触过alter语句,我认为我需要使用alter语句来完成这项工作。我在这里找到了文档:ALTER TABLE (Transfact-SQL),但是我对它一无所知。
到目前为止,我有以下几点(遗憾的是基本上什么都没有):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
我该怎么做呢?对于这个语句,有没有更好的文档(我对一个示例语句进行了一些搜索,但没有找到)?
发布于 2012-01-12 09:36:21
你需要
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
设置。
发布于 2012-01-12 09:37:20
使用ALTER
增加列大小不会丢失任何数据:
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3 varchar(500)
正如@Martin指出的那样,记住要显式地指定NULL | NOT NULL
发布于 2018-03-28 17:52:22
对于除MSSQL之外的MySQL或DBMSes,您可能需要使用modify
代替alter
作为列值:
ALTER TABLE `table name`
modify COLUMN `column name` varchar("length");
https://stackoverflow.com/questions/8829053
复制相似问题