varchar(50)
更改为nvarchar(200)
。更改此表的SQL命令是什么? #1 楼
ALTER TABLE TableName
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]
编辑
如前所述,应该指定NULL / NOT NULL,也请参见Rob的回答。
#2 楼
不要忘记可空性。ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
评论
可空性是怎么回事?如果我不想更改它-重新设置它有什么好处?
–令人难以置信的扬
17 Mar 10 '17 at 7:50
^在alter table语句完成执行而未明确定义其内容之后,它将默认为NULL。
–sc305495
17年7月31日在20:29
@ sc305495确切地说,它将默认使用ANSI_NULL_DEFAULT设置。
– Zikato
19年4月15日在12:17
#3 楼
使用Alter table语句。Alter table TableName Alter Column ColumnName nvarchar(100)
#4 楼
修改SQL Server(Transact-SQL)中现有表中的列的语法为: ALTER TABLE table_name
ALTER COLUMN column_name column_type;
例如:
ALTER TABLE employees
ALTER COLUMN last_name VARCHAR(75) NOT NULL;
此SQL Server
ALTER TABLE
示例将把名为last_name
的列修改为VARCHAR(75)
的数据类型,并强制该列不允许使用空值。请参见此处
评论
请在您的答案中添加更多信息,并设置代码/查询的格式!
– Sebastian Brosch
2015年10月11日在21:22
#5 楼
只要您增加varchar的大小,就可以了。根据Alter Table参考:降低列的精度或小数位数可能会导致数据截断。
#6 楼
用于更改数据类型alter table table_name
alter column column_name datatype [NULL|NOT NULL]
用于更改主键
ALTER TABLE table_name
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
#7 楼
ALTER TABLE [dbo].[TableName]
ALTER COLUMN ColumnName VARCHAR(Max) NULL
评论
这似乎并没有在多年前的现有接受答案上添加任何内容,而且您在表结构中发布的更改实际上与该问题不匹配。
– PeterJ
20 Mar 5 '20 at 11:05
#8 楼
试试这个:ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
评论
“修改”显然是不正确的。请与其他答案进行比较。
–坦率
15年1月29日在17:01
这很旧,但似乎Kai Tzer正在证明MySql和/或Oracle DDL。
–谢尔顿·科恩(Sheldon Cohen)
18年7月7日在19:55
同意Sheldon,这里的答案并不能帮助我使用oracle sql,仅此而已
– AsfK
18年4月12日在9:44
评论
为什么要指定?有什么好处?我想不必说的是我想离开的所有内容。
–令人难以置信的扬
17 Mar 10 '17 at 7:48
@TheincredibleJan太酷了,但是不幸的是,这种方式不起作用。如果您发出ALTER TABLE TableName ALTER COLUMN ColumnName命令来更改现有列[NOT NULL],而您未明确指定它,则此后将为[NULL],因为这是默认值。
– takrl
17年4月19日在6:10
仅当您在该列上没有约束和索引时,此方法才有效;否则,您需要删除所有内容并重新创建它,这是繁琐而繁琐的工作,尤其是当该列上有许多外部引用时。例如从tinyint更改为int时。
–Hrvoje Batrnek
18年6月9日在14:18
如果您打开了IDE,请当心(例如SSMS)。即使在我正在更改的表上关闭了Designer选项卡的情况下(运行脚本并右键单击表以选择“设计”后),它仍然显示旧的数据类型!直到关闭Management Studio中的所有选项卡并再次打开设计视图之后,它才最终显示更新的DataType。非常可怕,因此请小心(它可能是目前已修复的缓存错误,或者一个MS从未修复过)。对于那些想知道为什么在使用Design-View时为什么运行T-SQL的人,我想将DataTypes更改为SysName(SSMS不允许)。
–MikeTeeVee
19年4月10日在2:37
我对XAMPP.ALTER TABLE表MODIFY COLUMN列数据类型的这些命令不满意。
– Pavindu
19年5月6日在14:28