我需要将数据库表中的列数据类型从更改varchar为nvarchar,以支持中文字符(当前,varchar具有这些字符的字段仅显示问号)。
varchar
nvarchar
我知道如何更改值,但是我想看看这样做是否安全。在进行更改之前,有什么需要注意的吗?谢谢!
请注意,此更改是数据大小的更新,请参见深入了解SQL Server表列。所做的更改将添加一个新的NVARCHAR列,它将更新将dta从旧的VARCHAR复制到新的NVARCHAR列的每一行,然后将旧的VARCHAR列标记为已删除。如果表很大,则会生成一个大的日志,因此请为此做好准备。更新后,请运行DBCCCLEANTABLE以回收以前的VARCHAR列使用的空间。如果可以承受,则可以更好地运行ALTER TABLE ... REBUILD,它不仅可以回收空间,还可以完全删除物理上已删除的VARCHAR列。开头的链接文章有更多详细信息。
DBCCCLEANTABLE
ALTER TABLE ... REBUILD
您可能还想对表启用Unicode压缩。