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
Lepaskan: 2025-01-10 17:27:40
asal
592 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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