Mic*_*l A 177 sql t-sql sql-server varchar sql-server-2008
我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容.我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的.我在这里找到了文档:ALTER TABLE(Transfact-SQL)但是我无法做出正面或反面.
到目前为止,我有以下内容(基本上没有任何遗憾):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
Run Code Online (Sandbox Code Playgroud)
我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?
Mar*_*ith 336
你需要
ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]
Run Code Online (Sandbox Code Playgroud)
但是请记住NOT NULL如果需要明确指定.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;
Run Code Online (Sandbox Code Playgroud)
如果您未指定如下...
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);
Run Code Online (Sandbox Code Playgroud)
然后该列将默认允许空值,即使它最初被定义为NOT NULL.即省略a中的规范ALTER TABLE ... ALTER COLUMN始终被视为.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
Run Code Online (Sandbox Code Playgroud)
此行为与用于ALTER TABLE(或在CREATE TABLE时间)创建的新列的行为不同.默认的可空性取决于ANSI_NULL_DFLT设置.
Mit*_*eat 25
增加列大小ALTER不会丢失任何数据:
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3 varchar(500)
Run Code Online (Sandbox Code Playgroud)
正如@Martin指出的那样,记得明确指出 NULL | NOT NULL
Jed*_*edo 10
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);
Run Code Online (Sandbox Code Playgroud)
我正在使用Oracle SQL Developer,@anonymous 的答案是最接近的,但一直收到语法错误,直到我将查询编辑为此。我改成alter了modify,就不用定义column_name为了column。
小智 9
您可以使用modify:
ALTER TABLE `table name`
modify COLUMN `column name` varchar("length");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302778 次 |
| 最近记录: |