Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit parametrisierten Tabellenwertparametern und C# effizient mehrere Zeilen in eine SQL Server 2008-Datenbank einfügen?

Wie kann ich mit parametrisierten Tabellenwertparametern und C# effizient mehrere Zeilen in eine SQL Server 2008-Datenbank einfügen?

Patricia Arquette
Freigeben: 2025-01-12 08:42:45
Original
210 Leute haben es durchsucht

How Can I Efficiently Insert Multiple Rows into a SQL Server 2008 Database using Parameterized Table-Valued Parameters and C#?

Optimieren der Massendateneinfügung in SQL Server 2008 mit C# und Tabellenwertparametern

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#.

Definieren eines benutzerdefinierten Tabellentyps

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>
Nach dem Login kopieren

Erstellen der gespeicherten Prozedur

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>
Nach dem Login kopieren

C#-Implementierung für das Einfügen von Daten

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage