更改一个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