我第一次使用SQL Server 2005,过去主要使用过MySQL。我习惯于使用auto_increment在表中创建唯一的ID。SQL Server:合理的“自动增量”技术?
无论如何......我正在一个Java应用程序中工作,需要做以下工作。假定我的表有两列:itemID(int)和itemValue(int)。
这基本上就是我想要做的(在dbconn方法只是伪代码):
dbconn.execSQL("begin tran");
int nextID = dbconn.execSQLSelect("select max(itemID)+1 from itemTable");
dbconn.execSQLInsert("insert into itemTable values " + nextID + ", 1000");
dbconn.execSQL("commit tran");
会的开始/提交TRAN语句处理线2和3之间可能存在竞争条件?还是有一些TSQL等价于我需要做的MySQL的“锁定表”?
如果您需要或使用scope_Identity(),请使用OUtput子句返回标识,请勿使用@@ identity。 – HLGEM 2010-01-12 22:26:37
是否有某种“锁定表”替代方案,我可以在此使用以使自动递增行为更稳定?由于各种原因,需要花费很长时间才能进入,我需要对自己的唯一ID进行显式控制。 – DanM 2010-01-13 17:48:04