Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit parametrisierten Tabellenwertparametern und C# effizient mehrere Zeilen in eine SQL Server 2008-Datenbank einfügen?
Das einzelne Einfügen zahlreicher Zeilen in eine SQL Server 2008-Datenbank kann die Leistung erheblich beeinträchtigen. Dieser Artikel demonstriert einen effizienteren Ansatz mit parametrisierten Tabellenwertparametern und C#.
Erstellen Sie zunächst einen benutzerdefinierten Tabellentyp in SQL Server, der die Struktur Ihrer Zieltabelle widerspiegelt:
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO</code>
Als nächstes erstellen Sie eine gespeicherte Prozedur, die diesen Tabellentyp als Eingabe akzeptiert und die Masseneinfügung durchführt:
<code class="language-sql">CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- Readonly is crucial for table-valued parameters ) AS BEGIN INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable; END; GO</code>
Verwenden Sie abschließend C#, um ein DataTable
zu füllen und es als Tabellenwertparameter an die gespeicherte Prozedur zu übergeben:
<code class="language-csharp">DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Populate the DataTable with your data using (SqlConnection con = new SqlConnection("ConnectionString")) { using (SqlCommand cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@MyTable", dt); // AddWith Value handles SqlDbType automatically con.Open(); cmd.ExecuteNonQuery(); } }</code>
Diese Methode nutzt die Leistungsfähigkeit von Tabellenwertparametern, um die Effizienz beim Einfügen mehrerer Zeilen in Ihre SQL Server 2008-Datenbank aus Ihrer C#-Anwendung erheblich zu verbessern. Dieser Ansatz bietet eine überlegene Leistung im Vergleich zum Einfügen einzelner Zeilen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit parametrisierten Tabellenwertparametern und C# effizient mehrere Zeilen in eine SQL Server 2008-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!