根据用户输入值增加 table 中的一列

increment a column in the table based on user input values

我正在尝试编写一个存储过程,每次将国家代码 (AXX、XPP、CGG) 中的任何一个作为用户输入给出时,都会将 table 中的一列递增 1,具体取决于已存在的国家代码值

ID  CountryCode
1   AXX
2   AXX
1   XPP
3   AXX
4   AXX
2   XPP

我下面的代码获取读取 ID 的值,如

ID
1
2
3
4
...
...
Create procedure [dbo].[sp_Incremental]
@code varchar(50)
as
begin
    declare @IDbigint
    set @ID= 1 ;
    begin try
        Select @ID=count(ID)+1 from [Incremental_tbl]
        Begin
            Insert into [Incremental_tbl] values (@ID,@code)    
        End
end
go

你可以使用这个 SP :

CREATE PROCEDURE p_Incremental @code VARCHAR(50)
AS
SET NOCOUNT ON;
INSERT INTO Incremental_tbl (ID, code) 
SELECT COALESCE(MAX(ID), 0) + 1, @code
FROM   Incremental_tbl
GROUP  BY @code;
GO

但是,请不要忘记,在并发访问中,ID 可能会出现相同的值!