Azure SQL并发插入会导致增量列重复

时间:2019-12-17 12:59:58

标签: sql sql-server azure-sql-server

我们将PowerApps与Azure SQL集成在一起。用户提供的输入以增量行ID存储在Azure SQL中。请求ID递增操作在存储过程中处理。但是,如果多个用户同时添加内容,则所有请求都将使用相同的请求ID保存。由于依赖关系,我们不能强制“请求ID”列是唯一的。

请提出是否可以避免重复的内容。这是SP:

SELECT @ROWNUM = MAX(R.ROWNUM) + 1
         FROM REQUESTS R
         WHERE R.ABC = @XYZ

         IF @ROWNUM is NULL
         begin
             set @ROWNUM = 1
         end

         -- Inserting a single new request into request table with auto generated identify
            INSERT INTO REQUESTS
         (  
             Column1,
             …… 
             Columnn
         )

谢谢!

1 个答案:

答案 0 :(得分:1)

为了避免这种情况,您可以将表列ROWNUM更改为Identity

CREATE TABLE [dbo].[REQUESTS](
    [ROWNUM] [int] IDENTITY(1,1) NOT NULL,
    [Col1] [int] NOT NULL,
    [Col2] [varchar](50) NOT NULL,
    [Col3] [datetime] NOT NULL,
 CONSTRAINT [PK_REQUESTS] PRIMARY KEY CLUSTERED 
(
    [ROWNUM] ASC
)