根据用户输入值增加 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 可能会出现相同的值!
我正在尝试编写一个存储过程,每次将国家代码 (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 可能会出现相同的值!