1

我有一个现有的表,其中有 1500 万行。我想添加一个标识列并将其设为主键。问题是这个表总是在移动(插入、更新、删除)。是否可以使用此添加标识列?或者我必须停止更新此表的背景流程(这是一项乏味的任务)?

谢谢维克拉姆

4

1 回答 1

1

鉴于您有 1500 万行,执行 ALTER TABLE 语句可能需要一些不小的时间。

由于 SQL Server 不为 ALTER TABLE 提供表提示,因此可以非常安全地假设 SQL Server 在执行 ALTER TABLE 语句时获取表锁。

在此期间,不允许其他进程选择、插入、更新或删除,因此您不必担心与其他进程的竞争条件。

如果该过程花费的时间足够长,您的其他进程将遇到超时错误。根据流程的编写方式,这要么是坏事,要么不是问题,但您需要弄清楚这一点。如果是我,我会把它们关掉。

于 2011-01-28T16:54:26.377 回答