Lapisan API akses data seperti ODBC, OLE-DB dan SqlClient memanggil prosedur tersimpan (internal) sp_reset_connection saat menggunakan kembali koneksi dari kumpulan koneksi. Ini dilakukan untuk menyetel ulang status koneksi sebelum digunakan kembali.
Tampaknya tidak ada dokumentasi resmi tentang hal-hal yang disetel ulang, tetapi berikut adalah daftar tidak resminya.
sp_reset_connection menyetel ulang aspek koneksi berikut:
- Ini mengatur ulang semua status dan nomor kesalahan (seperti @@error)
- Ini menghentikan semua EC (konteks eksekusi) yang merupakan utas anak dari EC induk yang mengeksekusi kueri paralel
- Ini akan menunggu operasi I/O luar biasa yang belum selesai
- Ini akan membebaskan semua buffer yang ditahan di server melalui koneksi
- Ini akan membuka kunci semua sumber daya buffer yang digunakan oleh koneksi
- Ini akan melepaskan semua memori yang dialokasikan yang dimiliki oleh koneksi
- Ini akan menghapus semua pekerjaan atau tabel sementara yang dibuat oleh koneksi
- Ini akan mematikan semua kursor global yang dimiliki oleh koneksi
- Ini akan menutup semua pegangan SQL-XML terbuka yang terbuka
- Ini akan menghapus tabel kerja terkait SQL-XML yang terbuka
- Ini akan menutup semua tabel sistem
- Ini akan menutup semua tabel pengguna
- Ini akan menjatuhkan semua objek sementara
- Ini akan membatalkan transaksi terbuka
- Ini akan cacat dari transaksi terdistribusi saat terdaftar
- Ini akan mengurangi jumlah referensi untuk pengguna di database saat ini; yang melepaskan kunci database bersama
- Ini akan membebaskan kunci yang diperoleh
- Ini akan melepaskan pegangan apa pun yang mungkin telah diperoleh
- Ini akan mengatur ulang semua opsi SET ke nilai default
- Ini akan mengatur ulang nilai @@rowcount
- Ini akan mengatur ulang nilai @@identity
- Ini akan mengatur ulang opsi pelacakan tingkat sesi menggunakan dbcc traceon()
sp_reset_connection TIDAK akan disetel ulang:
- Konteks keamanan, itulah sebabnya penyatuan koneksi cocok dengan koneksi berdasarkan string koneksi yang tepat
- Jika Anda memasukkan peran aplikasi menggunakan sp_setapprole, karena peran aplikasi tidak dapat dikembalikan
- Tingkat isolasi transaksi