sql >> Base de Datos >  >> RDS >> Sqlserver

Valor de retorno del comando Insertar de SQL Server usando C#

SCOPE_IDENTITY devuelve el último valor de identidad insertado en una columna de identidad en el mismo ámbito. Un ámbito es un módulo:un procedimiento almacenado, desencadenador, función o lote. Por lo tanto, dos declaraciones están en el mismo ámbito si están en el mismo procedimiento almacenado, función o lote.

Puede usar SqlCommand.ExecuteScalar para ejecutar el comando de inserción y recuperar la nueva ID en una 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();
    }
}