Pessoal, estou com um probleminha!
É o seguinte: no BD de um sistema que estou desenvolvendo tem várias tabelas cuja chave primária é um campo int.
Eu estou usando SQL Server e, como ele não possui campo auto-increment, eu, toda vez que vou inserir um novo objeto, eu pego o maior valor do campo, somo 1 e adiciono. Algo mais ou menos assim:
Statement stmt = con.prepareStatement();
ResultSet rs = stmt.executeQuery("select max(codigo) from teste");
rs.next();
con.executeUpdate("insert into teste(codigo) values(" + (rs.getInt(1) + 1) + ")");
con.commit();
O problema é que esse sistema vai rodar em várias máquinas usando um BD central. Nada me garante que dois usuários tentem inserir dois objetos na mesma tabela ao mesmo tempo.
Eu queria um jeito de fazer bloqueio de tabela no SQL Server para que só um usuário possa usar uma tabela por vez.
Alguém sabe como fazer isso ou tem alguma outra sugestão?