更改SQL Server中的数据库列设计

更改SQL Server中的数据库列设计,sql,sql-server,sql-server-2008,sqldatatypes,Sql,Sql Server,Sql Server 2008,Sqldatatypes,我有一个生产数据库,我需要在列设计中从varchar更改为nvarchar。我知道我可以强迫它重新创建设计并保存它,但这样做是个好主意吗 结果是什么?还有其他建议吗 更新:其SQL Server 2008@Ye Myat Aung,您可以直接将数据类型从varchar更改为nvarchar。不需要重新创建结构。只需注意列的大小,因为nvarchar正在unicodes中保存数据,它几乎是varchar的两倍。我建议从生产数据库创建一个测试数据库,并运行脚本来更新字段类型。您应该遵循以下步骤: 在

我有一个生产数据库,我需要在列设计中从varchar更改为nvarchar。我知道我可以强迫它重新创建设计并保存它,但这样做是个好主意吗

结果是什么?还有其他建议吗


更新:其SQL Server 2008

@Ye Myat Aung,您可以直接将数据类型从varchar更改为nvarchar。不需要重新创建结构。只需注意列的大小,因为nvarchar正在unicodes中保存数据,它几乎是varchar的两倍。

我建议从生产数据库创建一个测试数据库,并运行脚本来更新字段类型。

您应该遵循以下步骤:

在“设计”视图中打开该表。 现在,在设计时将数据类型从varchar更改为NVarchar,而不是保存它。 现在您可以按标题栏左上方的ChangeGenerateScript。 保存脚本并执行它。
这是生产服务器避免任何数据丢失的最节省的解决方案。

如果要使用Visual Studio数据库版生成部署脚本,将自动为您创建此脚本。然而,它在背后的作用如下 1使用新定义创建表。只需使用{TableName}\u new来命名您的表。 2创建旧表上的索引 3创建旧表上的触发器并禁用它们 4将数据从旧表复制到新表。 5通过在表名后添加_Old来重命名旧表
6通过从名称中删除_new来重命名新表

表有多大?数据库是否一直在使用中,或者是否有一个小时以外的时间段可以运行更新而不会对用户造成影响?