Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Führen Sie den Insert-Befehl aus und geben Sie die eingefügte ID in SQL zurück

Die folgende Lösung funktioniert mit SQL Server 2005 und höher. Sie können die Ausgabe verwenden, um das erforderliche Feld zu erhalten. Anstelle von ID können Sie Ihren Schlüssel schreiben, den Sie zurückgeben möchten. mach es so

FÜR SQL SERVER 2005 und höher

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

FÜR frühere Versionen

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