C# でパラメーター化された変数を使用した一括挿入を実行する
データベース操作では、特に次のような場合に、複数のパラメーター化された変数をデータベースに挿入することが望ましいことがよくあります。データベースは Web アプリケーションからデータを受信しています。このような操作を最適化し、繰り返しを避けるには、ストアド プロシージャとテーブル値パラメーターを利用できます。
これを C# で実現するには、次の手順に従います。
ユーザー定義のテーブルタイプを作成する(UDT):
挿入するデータの構造に一致する UDT を定義します。例:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
テーブル値パラメーターを使用したストアド プロシージャの作成:
UDT をパラメータとして受け入れるストアド プロシージャを作成します。このプロシージャは、ターゲット データベース テーブルにデータを挿入します:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- Note: Table-valued parameters must be readonly ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
DataTable にデータを追加します:
パラメータを使用してストアド プロシージャを実行します:
一括挿入を実行するコマンドを実行します。
DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Fill your data table here using (var con = new SqlConnection("ConnectionString")) { using(var cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt; con.Open(); cmd.ExecuteNonQuery(); } }
次の手順に従うことで、次のことができます。 C# コードを使用して、SQL Server データベースへのパラメーター化された一括挿入を効率的に実行します。このアプローチは、繰り返しを防ぐだけでなく、複数の行に対して単一のクエリを実行することでデータベースのパフォーマンスを最適化します。
以上がC# および SQL Server でパラメータ化された一括挿入を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。