每周(左右)一次,我在多线程应用程序中收到以下错误消息:
数据库中已经有一个名为“IX_MY_INDEX_NAME”的对象。无法创建约束。
有问题的 SP 创建一个临时表,如下所示:
--removed for brevity
CREATE TABLE #MyTable
(
[IndexId] INT UNIQUE IDENTITY (1, 1) NOT NULL,
[WhateverId] INT NOT NULL,
[CustomerId] INT NULL,
[VendorId] INT NULL,
CONSTRAINT IX_MY_INDEX_NAME UNIQUE (
WhateverId,
CustomerId,
VendorId
)
)
--removed for brevity
是什么导致这种情况发生?上面的语句不是原子的吗?我错过了什么吗?