我试图改变一个列从一个varchar(50)到一个nvarchar(200)。修改该表的SQL命令是什么?
当前回答
在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)的数据类型,并强制该列不允许空值。
在这里看到的
其他回答
ALTER TABLE TableName
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]
编辑 如前所述,NULL/NOT NULL应该被指定,参见Rob的回答。
最初的问题是关于SQL Server的 然而,如果你在使用MySql服务器时阅读这篇文章, ALTER COLUMN不能用来改变列的类型。
要更改MYSQL服务器上的列类型,您可以使用:
ALTER TABLE `USER`
MODIFY SESSION_ID VARCHAR(100) NULL;
我使用上面的行来使用MySql服务器将列从varchar(20)扩展到varchar(100)。
只要增加varchar的大小就没问题。根据Alter Table引用:
降低列的精度或比例可能导致数据截断。
在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)的数据类型,并强制该列不允许空值。
在这里看到的
使用Alter table语句。
Alter table TableName Alter Column ColumnName nvarchar(100)
推荐文章
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?
- 多语句表值函数vs内联表值函数
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 检查SQL Server登录是否已经存在
- 我如何使用ROW_NUMBER()?
- SQL或者TSQL是图灵完备的吗?
- 如何检查表上持有哪些锁
- 转换data.frame列到向量?