我试图改变一个列从一个varchar(50)到一个nvarchar(200)。修改该表的SQL命令是什么?
当前回答
ALTER TABLE [dbo].[TableName]
ALTER COLUMN ColumnName VARCHAR(Max) NULL
其他回答
不要忘记可空性。
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
用于更改数据类型
alter table table_name
alter column column_name datatype [NULL|NOT NULL]
更改主键
ALTER TABLE table_name
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
使用Alter table语句。
Alter table TableName Alter Column ColumnName nvarchar(100)
只要增加varchar的大小就没问题。根据Alter Table引用:
降低列的精度或比例可能导致数据截断。
最初的问题是关于SQL Server的 然而,如果你在使用MySql服务器时阅读这篇文章, ALTER COLUMN不能用来改变列的类型。
要更改MYSQL服务器上的列类型,您可以使用:
ALTER TABLE `USER`
MODIFY SESSION_ID VARCHAR(100) NULL;
我使用上面的行来使用MySql服务器将列从varchar(20)扩展到varchar(100)。
推荐文章
- 我如何在T-SQL用逗号格式化一个数字?
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- SQL Server动态PIVOT查询?
- 如何等待2秒?
- SQL Server: CROSS JOIN和FULL OUTER JOIN的区别是什么?
- varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?
- 向现有表添加主键
- 我应该在SQL varchar(长度)中考虑电话的最长的全球电话号码是什么
- T-SQL CASE子句:如何指定WHEN NULL
- 表中标识列的显式值只能在使用列列表且IDENTITY_INSERT为ON SQL Server时指定
- 如何确定已安装的SQL Server实例及其版本?
- Scope_Identity()、Identity()、@@Identity和Ident_Current()之间的区别是什么?
- 如何在TSQL中刷新打印缓冲区?
- 如何用一个SQL查询从数据库中删除所有表?