首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在现有SQL Server 2005数据库中将数据类型varchar更改为nvarchar。有什么问题吗?

在现有SQL Server 2005数据库中将数据类型varchar更改为nvarchar。有什么问题吗?
EN

Stack Overflow用户
提问于 2011-11-17 03:39:08
回答 5查看 57.9K关注 0票数 36

我需要将数据库表中的列数据类型从varchar更改为nvarchar,以便支持中文字符(目前,包含这些字符的varchar字段仅显示问号)。

我知道如何更改这些值,但我想看看这样做是否安全。在我换衣服之前有什么需要注意的吗?谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-17 04:06:28

请注意,此更改是数据大小更新,请参见SQL Server table columns under the hood。更改将添加一个新的NVARCHAR列,它将更新每一行,将dta从旧的VARCHAR列复制到新的NVARCHAR列,然后将旧的VARCHAR列标记为已删除。如果表很大,这将生成一个很大的日志,因此要做好准备。更新之后,运行DBCC CLEANTABLE以回收以前的VARCHAR列使用的空间。如果您负担得起,最好运行ALTER TABLE ... REBUILD,这不仅可以回收空间,还可以完全删除物理上删除的VARCHAR列。开头的链接文章有更多细节。

您可能还对为表启用Unicode Compression感兴趣。

票数 45
EN

Stack Overflow用户

发布于 2013-03-28 23:23:19

您可以对非主键字段执行以下操作:

代码语言:javascript
复制
ALTER TABLE [TableName]
ALTER COLUMN [ColumnName] nvarchar(N) null

对于主键字段,它将不起作用-您必须重新创建表

票数 43
EN

Stack Overflow用户

发布于 2011-11-17 03:41:48

确保长度不超过4000,因为VARCHAR的最大长度是8000,而NVARCHAR只有4K。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8157602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档