我的存储过程中有以下脚本
IF EXISTS(SELECT * FROM dbo.MBLPosition WHERE PositionGKey = @i_PositionGKey) RETURN
-- DO SOME STUFF HERE
INSERT dbo.MBLPosition..
我正在向表中插入一些数据(单条记录)。首先我检查它是否已经存在,然后我进行一些处理并插入记录。
处理可能需要一些时间 - 比如说 2 秒。有时电话随后进来,我得到约束异常。罕见,但会发生。我想避免这种情况,同时如果记录已经存在,我不想进行此处理。构造此代码的最佳方法是什么,以便我不做额外的工作并避免异常?
这是一张大表,随时都有记录。什么是当他们进来并且不花费太多处理时间时过滤掉骗子的最佳方法?