我的任务是将表的列数据类型从smallint更改为int,以获得包含3200万行的表。要求是尽可能降低停机时间(基本上是实现这一目标的最快方式)。 我们正在使用SQL Server 2000。
请帮忙!
答案 0 :(得分:4)
有几个选项,您可以制作表格的在线副本,然后使用sp_rename将其切换出来。
另一种方法是添加新列,填充它,然后删除旧列并重命名新列。
根据行的宽度,32m行可以被认为是大或小。
答案 1 :(得分:2)
无论您做什么,都不要使用Enterprise Manager来更改数据类型。它将要做的是创建一个全新的表,填充它,重命名旧表,将新表重命名为旧表的名称,并将其全部放入一个令人讨厌的事务中,将表锁定几个小时。