Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个现有的表,其中有 1500 万行。我想添加一个标识列并将其设为主键。问题是这个表总是在移动(插入、更新、删除)。是否可以使用此添加标识列?或者我必须停止更新此表的背景流程(这是一项乏味的任务)?
谢谢维克拉姆
鉴于您有 1500 万行,执行 ALTER TABLE 语句可能需要一些不小的时间。
由于 SQL Server 不为 ALTER TABLE 提供表提示,因此可以非常安全地假设 SQL Server 在执行 ALTER TABLE 语句时获取表锁。
在此期间,不允许其他进程选择、插入、更新或删除,因此您不必担心与其他进程的竞争条件。
如果该过程花费的时间足够长,您的其他进程将遇到超时错误。根据流程的编写方式,这要么是坏事,要么不是问题,但您需要弄清楚这一点。如果是我,我会把它们关掉。