对于具有大量数据的表,将数据类型从varchar更改为nvarchar

Pan*_*122 4 sql sql-server sql-server-2016

我需要有关如何最好地将列数据类型varchar更改nvarchar为具有5亿条记录的表的建议.

提前致谢.

Lar*_*rnu 5

你只需要发表一份ALTER TABLE声明

ALTER TABLE YourTable ALTER COLUMN YourColumn nvarchar({required length});
Run Code Online (Sandbox Code Playgroud)

您需要替换大括号({})中的部分并替换为您的对象名称.


Pan*_*122 2

所以,我所做的就是, 1. 使用 nvarchar 创建一个新表作为所需列 2. 使用 ssis 将数据从现有表复制到新表。3. 在新表上创建约束和索引。所有这些步骤都可以在应用程序仍在运行时完成 4. 将现有表重命名为 _Old,并将新表重命名为现有表的名称 上述步骤几乎不需要一秒钟,并且是应用程序关闭时的唯一步骤。

像这样,我能够减少应用程序的停机时间并成功更改列数据类型。