我有一个包含1500万行的现有表。我想添加一个标识列并使其成为主键。问题是这个表总是在移动(插入,更新,删除)。是否可以添加标识列?或者我必须停止更新此表的背景过程(这是一项单调乏味的任务)?
由于 维克拉姆
答案 0 :(得分:1)
鉴于您有1500万行,执行ALTER TABLE语句可能需要一些非常重要的时间。
由于SQL Server不提供ALTER TABLE的表提示,因此可以非常安全地假设SQL Server在执行ALTER TABLE语句时获取表锁。
在此期间,不允许其他进程选择,插入,更新或删除,因此您不必担心其他进程的竞争条件。
如果进程需要足够长的时间,则其他进程将遇到超时错误。根据进程的编写方式,这可能是坏事,也可能是非问题,但您需要弄清楚。如果是我,我会把它们关掉。