Prosedur Tersimpan - Berjalan di SQL Server Native Client
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Penting
SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). Penyedia SQL Server Native Client OLE DB (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server ke depannya.
Saat menjalankan pernyataan, memanggil prosedur tersimpan pada sumber data (alih-alih mengeksekusi atau menyiapkan pernyataan di aplikasi klien secara langsung) dapat memberikan:
Performa yang lebih tinggi.
Mengurangi overhead jaringan.
Konsistensi yang lebih baik.
Akurasi yang lebih baik.
Menambahkan fungsionalitas.
Penyedia SQL Server Native Client OLE DB mendukung tiga mekanisme yang digunakan prosedur tersimpan SQL Server untuk mengembalikan data:
Setiap pernyataan SELECT dalam prosedur menghasilkan tataan hasil.
Prosedur ini dapat mengembalikan data melalui parameter output.
Prosedur dapat memiliki kode pengembalian bilangan bulat.
Aplikasi harus dapat menangani semua output ini dari prosedur tersimpan.
Penyedia OLE DB yang berbeda mengembalikan parameter output dan mengembalikan nilai pada waktu yang berbeda selama pemrosesan hasil. Dalam kasus penyedia SQL Server Native Client OLE DB, parameter output dan kode pengembalian tidak disediakan sampai setelah konsumen mengambil atau membatalkan kumpulan hasil yang dikembalikan oleh prosedur tersimpan. Kode pengembalian dan parameter output dikembalikan dalam paket TDS terakhir dari server.
Penyedia menggunakan properti DBPROP_OUTPUTPARAMETERAVAILABILITY untuk melaporkan saat mengembalikan parameter output dan mengembalikan nilai. Properti ini berada dalam kumpulan properti DBPROPSET_DATASOURCEINFO.
Penyedia SQL Server Native Client OLE DB mengatur properti DBPROP_OUTPUTPARAMETERAVAILABILITY ke DBPROPVAL_OA_ATROWRELEASE untuk menunjukkan bahwa kode pengembalian dan parameter output tidak dikembalikan sampai kumpulan hasil diproses atau dirilis.