我有一个带有“ID”列的数据库。每当数据库有新条目时,我都会从数据库中获取最后一个 ID,增加值,然后在 Insert 语句中使用它。
编辑:我需要在多个插入语句中使用 ID。我将从主表中获取此 ID,并使用此 ID 将值插入相关表中。
NextID = Select Max(ID) + 1 From Table
INSERT INTO Table1(ID, Col1, Col2...) Values(NextId, Value1, Value2...)
INSERT INTO Table2 (ID,col1,col2....) Values (NextID, Value1, Value2...)
我不知道这是否是一个好方法,因为我知道会有并发问题。当我的应用程序尝试读取 NextID 时,有可能该应用程序的另一个实例也尝试读取相同的值,因此可能会出现并发问题。
有没有适当的方法来处理这种情况?我的意思是有一些方法可以设置数据库隔离级别。对于这种情况,这将是适当的隔离级别。
此外,如果有人可以建议我用另一种方法来手动维护和增加数据库中的 ID,我也愿意接受。
如果这些信息还不够,请告诉我您需要什么。
我正在使用带有 VB 和 MS Sql Server 2008 的 ASP.Net。我不想使用 SQL Server 的内置“身份”。