Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Valore restituito dal comando Inserisci di SQL Server utilizzando c#

SCOPE_IDENTITY restituisce l'ultimo valore identity inserito in una colonna identity nello stesso ambito. Un ambito è un modulo:una procedura memorizzata, un trigger, una funzione o un batch. Pertanto, due istruzioni rientrano nello stesso ambito se si trovano nella stessa procedura, funzione o batch archiviata.

Puoi utilizzare SqlCommand.ExecuteScalar per eseguire il comando di inserimento e recuperare il nuovo ID in una query.

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();
    }
}