如何在不影响现有列宽的情况下更改列数据类型
Posted
技术标签:
【中文标题】如何在不影响现有列宽的情况下更改列数据类型【英文标题】:How to Alter Column Data Type Without Affecting Existing Column Width 【发布时间】:2009-09-04 14:53:38 【问题描述】:我有一个数据类型为 varchar 的现有列需要更改为 nvarchar,但是我不想更改 (5) 的现有列宽。
如果我使用下面的语句
ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN NVARCHAR (5) NOT NULL
我最终得到一列 nvarchar 数据类型,但列宽为 (10)!
如果我在不指定列宽的情况下尝试以下语句
ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN NVARCHAR (5) NOT NULL
然后我得到一个宽度为 (2) 的 nvarchar 列
如何在不影响现有列宽的情况下简单地将列数据类型从 varchar 更改为 nvarchar?
谢谢!
【问题讨论】:
【参考方案1】:NVARCHAR
是 UNICODE UCS-2 类型,按照设计,其宽度将是 VARCHAR
的两倍。
请仔细阅读 SQL Server 联机丛书,了解 SQL 数据类型之间的区别。我已经添加了link。
【讨论】:
以上是关于如何在不影响现有列宽的情况下更改列数据类型的主要内容,如果未能解决你的问题,请参考以下文章
如何在不更改现有组件文件的情况下通过插件将日期类型更改为下拉列表
如何在不更改现有数据位置的情况下添加新的 SQL Server 分区范围来容纳未来的数据?