我运行下面的查询,安全插入值具有唯一索引
IF NOT EXISTS
(SELECT TOP 1 forumViewID FROM rla.dbo.forumView WHERE fv_sessionID = 27392504 AND fv_topicID = 23971)
BEGIN
INSERT INTO rla.dbo.forumView (fv_sessionID, fv_topicID) VALUES (27392504, 23971);
END;
我有一个跨越fv_sessionID和fv_topicID的唯一索引 - 所以大多数的这个查询按预期工作的时候,只有一个“视图“每个会话生成,偶尔我虽然得到一个错误:
Violation of UNIQUE KEY constraint 'IX__forumView'. Cannot insert duplicate key in object 'dbo.forumView'.
有什么做的,停止此,还是我只需要赶上并在这些情况下忽略?
因为麻烦列是外国它不可能使用这种身份列,我已经实施了TRY/CATCH,迄今它似乎在做伎俩,所以我会接受这个答案为此原因。 –