Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Valor de retorno do comando SQL Server Insert usando c#


SCOPE_IDENTITY retorna o último valor de identidade inserido em uma coluna de identidade no mesmo escopo. Um escopo é um módulo:um procedimento armazenado, gatilho, função ou lote. Portanto, duas instruções estão no mesmo escopo se estiverem no mesmo procedimento armazenado, função ou lote.

Você pode usar SqlCommand.ExecuteScalar para executar o comando insert e recuperar o novo ID em uma consulta.
using (var con = new SqlConnection(ConnectionString)) {
    int newID;
    var cmd = "INSERT INTO foo (column_name)VALUES (@Value);SELECT CAST(scope_identity() AS int)";
    using (var insertCommand = new SqlCommand(cmd, con)) {
        insertCommand.Parameters.AddWithValue("@Value", "bar");
        con.Open();
        newID = (int)insertCommand.ExecuteScalar();
    }
}