Rumah > pangkalan data > tutorial mysql > Bagaimanakah Parameter Bernilai Jadual Boleh Meningkatkan Kecekapan Apabila Menyalurkan Berbilang Item kepada Prosedur Tersimpan SQL?

Bagaimanakah Parameter Bernilai Jadual Boleh Meningkatkan Kecekapan Apabila Menyalurkan Berbilang Item kepada Prosedur Tersimpan SQL?

Barbara Streisand
Lepaskan: 2024-12-30 04:48:39
asal
228 orang telah melayarinya

How Can Table-Valued Parameters Improve Efficiency When Passing Multiple Items to SQL Stored Procedures?

Menjinakkan Prosedur Tersimpan dengan Parameter Bernilai Jadual

Masalah:
Memindahkan berbilang item ke satu rekod pangkalan data dengan cekap kekal sebagai cabaran berterusan . Sebagai contoh, memberikan berbilang item kepada laporan memerlukan pengemaskinian jadual ReportItems dengan berbilang rekod. Pendekatan konvensional melibatkan kod kompleks dan fungsi tambahan untuk memproses senarai item sebagai rentetan.

Menyingkap Penyelesaian yang Lebih Baik

Dengan kemunculan SQL Server 2008, "Parameter bernilai jadual" memperkenalkan penyelesaian terobosan untuk teka-teki ini.

Keajaiban TVP:
Parameter bernilai jadual membolehkan anda menghantar struktur seperti jadual sebagai parameter kepada prosedur tersimpan. Dalam kes kami, kami boleh mentakrifkan TVP untuk menerima jadual ID item integer.

Kod Disemak:
Kod yang disemak menjadi lebih ringkas:

public void AddItemsToReport(string connStr, int Id, List<int> itemList)
{
    Database db = DatabaseFactory.CreateDatabase(connStr);

    string sqlCommand = "AddItemsToReport"
    DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);

    // Convert the list to a DataTable (lightweight)
    DataTable table = itemList.ToDataTable();

    // Create the TVP parameter
    db.AddParameter(dbCommand, "Items", table);

    // Execute the stored procedure
    db.ExecuteNonQuery(dbCommand);
}
Salin selepas log masuk

Prosedur Tersimpan yang Dipertingkatkan:
Prosedur tersimpan memudahkan lagi:

INSERT INTO ReportItem (ReportId,ItemId)
SELECT  @ReportId,
          Id
FROM     @Items
Salin selepas log masuk

Kesimpulan:
Parameter bernilai jadual menawarkan mekanisme yang elegan dan cekap untuk memindahkan berbilang item ke prosedur tersimpan SQL. Dengan menghapuskan keperluan untuk manipulasi rentetan kompleks dan fungsi tambahan, TVP menyelaraskan proses pembangunan dan meningkatkan kebolehbacaan kod.

Atas ialah kandungan terperinci Bagaimanakah Parameter Bernilai Jadual Boleh Meningkatkan Kecekapan Apabila Menyalurkan Berbilang Item kepada Prosedur Tersimpan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan