在處理大量資料集或頻繁更新時,最佳化資料庫操作至關重要。在 C# 中有效地將多行插入資料庫會帶來重大挑戰,特別是當資料是從 Web 來源接收並且出於安全目的需要參數化時。
提供的程式碼snippet 使用循環為每個資料元素執行單獨的插入語句:
foreach(string data in Scraper){ // ... Command.executeNonQuery(); conn.close(); }
但是,這種迭代方法效率低下,可能會導致
為了在SQL Server 2008及更高版本中更快、更有效率地插入數據,表值參數提供了一個引人注目的解決方案。透過定義使用者定義的表格類型並在預存程序中利用它,您可以在單一操作中插入多行。
步驟1:建立使用者定義的表格類型
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) )
第2 步驟:建立帶有表格值的預存程序參數
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
步驟3:從C#執行預存程序
DataTable dt = new DataTable(); // Fill data table with values... 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 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!