将标识列添加到始终更改的现有表

时间:2011-01-28 11:44:31

标签: sql sql-server-2005 identity-column

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

由于 维克拉姆

1 个答案:

答案 0 :(得分:1)

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

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

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

如果进程需要足够长的时间,则其他进程将遇到超时错误。根据进程的编写方式,这可能是坏事,也可能是非问题,但您需要弄清楚。如果是我,我会把它们关掉。