我有一個存儲過程,如何使此示例SQL Atomic?
ALTER PROCEDURE [dbo].[InsertDealGallery]
(
@ImageID INT,
@DealID INT
)
AS
DECLARE @MaxOrder INT;
SELECT @MaxOrder = MAX([Order]) + 1 FROM DealGallery WHERE DealID = @DealID
IF (@MaxOrder IS NULL)
BEGIN
SET @MaxOrder = 1;
END
INSERT INTO [DealGallery]
([ImageID]
,[DealID]
,[Order])
VALUES
(@ImageID
,@DealID
,@MaxOrder)
但我擔心這是不是原子,因爲在同一時間MaxOrder可能會保持在當前的線程相同。那麼如何使這個原子?
什麼你基本上是在這裏做手工計算整數標識字段。 – STLDeveloper
@STL開發者,是的。我需要做這個原子 – user960567
任何你不能存儲記錄被添加來控制訂單的時間的原因嗎?似乎它在功能上等同於你在這裏要做的事情。 –