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

Exécutez la commande Insert et renvoyez l'ID inséré dans Sql

La solution suivante fonctionnera avec SQL Server 2005 et supérieur. Vous pouvez utiliser la sortie pour obtenir le champ requis. à la place de l'identifiant, vous pouvez écrire votre clé que vous souhaitez renvoyer. fais comme ça

POUR SQL SERVER 2005 et supérieur

    using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) output INSERTED.ID VALUES(@na,@occ)",con))
    {
        cmd.Parameters.AddWithValue("@na", Mem_NA);
        cmd.Parameters.AddWithValue("@occ", Mem_Occ);
        con.Open();

        int modified =(int)cmd.ExecuteScalar();

        if (con.State == System.Data.ConnectionState.Open) 
            con.Close();

        return modified;
    }
}

POUR les versions précédentes

    using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ)  VALUES(@na,@occ);SELECT SCOPE_IDENTITY();",con))
    {
        cmd.Parameters.AddWithValue("@na", Mem_NA);
        cmd.Parameters.AddWithValue("@occ", Mem_Occ);
        con.Open();

        int modified = Convert.ToInt32(cmd.ExecuteScalar());

        if (con.State == System.Data.ConnectionState.Open) con.Close();
            return modified;
    }
}