Heim >Datenbank >MySQL-Tutorial >Wie erhalte ich die eingefügte ID nach einem INSERT-Befehl in SQL Server?
Abrufen der neu eingefügten ID in SQL Server aus C#
In diesem Artikel wird gezeigt, wie Sie mit C# in einer MVC 4-Anwendung Daten in eine SQL Server-Tabelle einfügen und anschließend die ID des neu hinzugefügten Datensatzes abrufen. Wir untersuchen Methoden für SQL Server 2005 und höher sowie für Versionen vor 2005.
Methode 1: SQL Server 2005 und höher (mit OUTPUT INSERTED.ID
)
Dieser Ansatz nutzt die OUTPUT
-Klausel, eine hocheffiziente Methode zum Abrufen der eingefügten ID direkt in der Einfügeanweisung selbst.
<code class="language-csharp">public class MemberBasicData { public int Id { get; set; } public string Mem_NA { get; set; } public string Mem_Occ { get; set; } } public int CreateNewMember(string Mem_NA, string Mem_Occ) { using (SqlConnection con = new SqlConnection(Config.ConnectionString)) { 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 newId = (int)cmd.ExecuteScalar(); con.Close(); return newId; } } }</code>
Methode 2: SQL Server-Versionen vor 2005 (mit SCOPE_IDENTITY()
)
Bei älteren SQL Server-Versionen wird die Funktion SCOPE_IDENTITY()
verwendet, um den letzten im aktuellen Bereich generierten Identitätswert abzurufen.
<code class="language-csharp">public int CreateNewMember(string Mem_NA, string Mem_Occ) { using (SqlConnection con = new SqlConnection(Config.ConnectionString)) { 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 newId = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); return newId; } } }</code>
Beide Methoden erzielen das gleiche Ergebnis: die Rückgabe der ID des neu eingefügten Datensatzes. Die Auswahl hängt von Ihrer SQL Server-Version ab. Die OUTPUT
-Klausel wird im Allgemeinen aufgrund ihrer Effizienz und Klarheit in neueren Versionen bevorzugt. Denken Sie daran, "Config.ConnectionString"
durch Ihre tatsächliche Verbindungszeichenfolge zu ersetzen.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die eingefügte ID nach einem INSERT-Befehl in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!