Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Valeur de retour de la commande SQL Server Insert à l'aide de c#

SCOPE_IDENTITY renvoie la dernière valeur d'identité insérée dans une colonne d'identité dans la même portée. Une portée est un module :une procédure stockée, un déclencheur, une fonction ou un lot. Par conséquent, deux instructions sont dans la même portée si elles se trouvent dans la même procédure stockée, fonction ou lot.

Vous pouvez utiliser SqlCommand.ExecuteScalar pour exécuter la commande d'insertion et récupérer le nouvel ID en une seule requête.

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