尝试类似……
BEGIN TRY BEGIN TRANSACTION; DECLARE @iCount INT; IF EXISTS(SELECt 1 FROM Student WITH(UPDLOCK,HOLDLOCK) WHERe Id_Column = @iId) BEGIN select @iCount = ISNULL(max(Count_Column), 0) + 1 from Student WITH(UPDLOCK,HOLDLOCK) where Id_Column = @iId insert into Student values(@id, @iCount); END COMMIT TRANSACTION;END TRYBEGIN CATCH IF (@@TRANCOUNT <> 0) ROLLBACK TRANSACTION;END CATCH
重要的提示
您实际上应该
Identity在此处使用column来处理自动增量值。如果您使用的是sql server
2012或更高版本,则还有另一种选择也是使用
Sequence Objectauto-increment。



