更改一个varchar列的最大长度?
我试图将255个字符的varchar列的长度更新为500,而不会丢失内容。 我之前已经删除并重新创build了表,但是我从来没有接触到alter语句,这是我相信我需要用到的。 我在这里find了这个文档: ALTER TABLE(Transfact-SQL),但是我不能使它正面或者反面 。
到目前为止,我有以下(基本上没有什么不幸):
alter table [progennet_dev].PROGEN.LE alter column UR_VALUE_3
我如何处理这个? 有没有更好的文件,这个声明在那里(我做了一些示例语句的search,但空了)?
你需要
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 ... ALTER COLUMN
总是被视为。
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
此行为与用ALTER TABLE
(或在CREATE TABLE
时间)创build的新列所使用的行为不同。 那里默认的可空性取决于ANSI_NULL_DFLT
设置。
使用ALTER
增加列大小不会丢失任何数据:
alter table [progennet_dev].PROGEN.LE alter column UR_VALUE_3 varchar(500)
正如@Martin指出的那样,记得明确指定NULL | NOT NULL
NULL | NOT NULL