调整列大小会锁定表吗?

kco*_*ode 6 sql sql-server-2008

如果我将一列从 nvarchar(2) 更改为 nvarchar(10) 或将一列从 char(2) 更改为 nvarchar(10),会发生什么情况。这是锁定、重组表还是在没有任何影响或停机的情况下工作?

我试图找出如果我改变一个列会发生什么,但我没有找到任何东西。它是一个大表,有一两列要更改。它是关于 MS SQL Server 2008 R2。

小智 0

如果您使用 ALTER 命令,那么它将创建另一个表,将现有数据复制到新表,完成后删除旧表,然后使用旧表名称重命名新表。我认为在实时数据库中执行此操作不是最佳实践,但有一些方法可以处理生产数据。

http://www.sqlmag.com/article/tsql3/resizing-a-column-in-a-large-table.aspx