テーブル値パラメーターを使用して C# バッチでパラメーター化された行挿入を実装する
データベース操作では、データのセキュリティを確保しながら複数行のデータを効率的に挿入することが一般的な要件です。 C# では、これはテーブル値パラメーターとストアド プロシージャを使用して実現できます。
「INSERT INTO」ステートメントの繰り返しの使用を避け、パラメーター化されたデータ行をバッチで挿入するには、以下の手順に従ってください。
ユーザー定義テーブルタイプ (UDT) の作成: 挿入する行を表すテーブル構造を定義します。例:
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO</code>
ストアド プロシージャの作成: UDT をパラメータとして受け入れるストアド プロシージャを作成します。
<code class="language-sql">CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- 注意:表值参数必须是只读的! ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO</code>
データの準備: データテーブルを作成し、そこに挿入する行を入力します。
ストアド プロシージャを実行します: SqlCommand オブジェクトを使用してストアド プロシージャを実行し、データ テーブルをパラメータとして渡します。
<code class="language-csharp">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(); } }</code>
この方法を使用すると、パラメータ化されたクエリを通じてデータのセキュリティを確保しながら、データベースに複数の行を効率的に挿入できます。これにより、重複する可能性のある非効率的な個別の挿入ステートメントが回避されます。
以上がC# を使用して複数のパラメーター化された行を SQL データベースに効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。