Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melewati Tatasusunan Parameter ke Prosedur Tersimpan Pelayan SQL dengan Cekap?

Bagaimanakah Saya Boleh Melewati Tatasusunan Parameter ke Prosedur Tersimpan Pelayan SQL dengan Cekap?

Susan Sarandon
Susan Sarandonasal
2025-01-10 17:27:40635semak imbas

How Can I Pass an Array of Parameters to a SQL Server Stored Procedure Efficiently?

Gunakan parameter bernilai jadual (TVP) untuk menghantar tatasusunan parameter dengan cekap kepada prosedur tersimpan

Melalui tatasusunan parameter ialah tugas yang sangat biasa apabila menggunakan prosedur tersimpan. Artikel ini akan meneroka cara menghantar tatasusunan pengecam (ID) kepada prosedur tersimpan untuk melaksanakan operasi tertentu.

Huraian Masalah

Kami perlu menghantar tatasusunan ID kepada prosedur tersimpan yang akan memadamkan semua baris dalam jadual kecuali baris yang sepadan dengan ID dalam tatasusunan.

Penyelesaian menggunakan parameter bernilai jadual

Dalam SQL Server 2008 dan lebih baru, parameter nilai jadual (TVP) menyediakan cara yang cekap untuk menghantar tatasusunan kepada prosedur tersimpan. Begini cara melaksanakannya menggunakan TVP:

1. Cipta TVP

Buat TVP untuk mewakili tatasusunan ID:

<code class="language-sql">CREATE TYPE T1Ids AS Table (
    t1Id INT
);</code>

2. Buat prosedur tersimpan

Buat prosedur tersimpan menggunakan TVP:

<code class="language-sql">CREATE PROCEDURE dbo.FindMatchingRowsInTable1( @Table1Ids AS T1Ids READONLY )
AS
BEGIN
    -- 您的存储过程逻辑在此处
END</code>

3. Sediakan data TVP

Dalam aplikasi anda, sediakan data TVP ke dalam Jadual Data:

<code class="language-csharp">DataTable t1Ids = new DataTable();
t1Ids.Columns.Add("t1Id", typeof(int));
foreach (int id in listOfIdsToFind)
{
    t1Ids.Rows.Add(id);
}</code>

4. Lulus TVP ke prosedur tersimpan

Apabila memanggil prosedur tersimpan, berikan TVP sebagai parameter:

<code class="language-csharp">SqlParameter sqlParameter = new SqlParameter("Table1Ids", t1Ids);
findMatchingRowsInTable1.Parameters.Add(sqlParameter);</code>

5. Laksanakan prosedur tersimpan

Laksanakan prosedur tersimpan dan proses hasilnya.

Kelebihan menggunakan TVP

  • Melalui parameter selamat jenis
  • Prestasi yang lebih baik berbanding dengan mensiri dan menyahsiri data
  • Sintaks yang boleh dibaca dan mudah digunakan

Pendekatan ini memudahkan tugas melaksanakan operasi yang kompleks pada set data dengan membolehkan anda dengan mudah menghantar tatasusunan parameter kepada prosedur yang disimpan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Tatasusunan Parameter ke Prosedur Tersimpan Pelayan SQL dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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