SQLServer 2012 + Java - Método para retornar o ultimo ID inserido

Boa tarde pessoal, estou fazendo um insert e necessito retornar o codigo gerado no insert.
Existe algum modo que facilite esse retorno? sei que no MySQL possui um “last_insert_id”, mas para o sqlserver não estou encontrado nada do gênero.

o melhor a fazer seria um select max(codigo) da tabela antes de commitar? ou existiria alguma outra forma?

EDIT: minha coluna codigo é auto_increment ( IDENTITY no caso do Sql Server )

  • IDENT_CURRENT retorna o último valor de identidade gerado para uma tabela específica em qualquer sessão e escopo.
  • @@IDENTITY retorna o último valor de identidade gerado para qualquer tabela na sessão atual, em todos os escopos.
  • SCOPE_IDENTITY retorna o último valor de identidade gerado para qualquer tabela na sessão e no escopo atuais.

https://docs.microsoft.com/pt-br/sql/t-sql/functions/ident-current-transact-sql?view=sql-server-ver15

Pro seu caso deve ser o @@IDENTITY, o que eu costumo usar também em stored procedures.

1 curtida

Muito obrigado @javaflex, eu vi estes comandos mas acabei sem entender como proceder.
Para quem tenha a mesma duvida, eu fiz da seguinte forma:

    String sqlId = "SELECT @@IDENTITY";
    pstmt2 = connectionSQLServer.prepareStatement(sqlId);
    rs = pstmt2.executeQuery();
    if (rs.next()) {
        codigoImportacao = rs.getInt(1);
    }
1 curtida