如何将所有varchar列/变量/参数一次性转换为nvarchar类型?

时间:2018-04-27 04:25:27

标签: sql-server tsql

我有一个拥有近1000 tables的数据库。所有文本类型字段都是varchar类型。它也有近1000+ stored proceduresfunctions。 这些proceduresfunctions获得了自己的varchar参数和varchar个变量。 我需要在每个varchar中一次性将每个nvarchar类型字段转换为table, procedures and functions类型。 当然,我可以一个接一个地做,但这需要数年才能手动完成。

我不需要改变大小。如果是varchar(50)。我希望输出像nvarchar(50)。尺寸没有变化。

1 个答案:

答案 0 :(得分:0)

  

当然,我可以一个接一个地做,但这需要数年才能手动完成。

这似乎就是你问题的答案,好像在一个人的过程中一样。在单个事务中需要多年才能根据您必须执行此操作的维护窗口以易消化的块执行。

  • 表首先考虑任何PK-FK执行顺序
  • 除非任何视图是架构绑定,否则您必须删除视图 - 更改表 - 按该顺序重新创建视图。
  • 然后是功能和SP&#39。

OR

如果可能,请获取数据库副本,应用所有更改,然后在当前prod数据库与该数据库之间切换。这假设您可以安排在执行切换时确保当前数据库中的所有prod数据都在副本中。