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
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!