Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa ruang lingkup CONTEXT_INFO di SQL Server?

Info konteks tidak memiliki ruang lingkup (dalam arti ruang lingkup variabel bahasa) dan terikat pada masa pakai sesi. Setelah disetel, info konteks tetap pada nilai yang ditetapkan hingga koneksi ditutup (sesi berakhir) atau hingga nilai baru ditetapkan. Karena eksekusi pada suatu sesi selalu berurutan, tidak ada pertanyaan tentang konkurensi.

JIKA Anda menyetel info konteks dalam suatu prosedur, pemicu apa pun yang dijalankan selanjutnya pada sesi itu akan melihat nilai info konteks yang baru disetel. Menyetel nilai id pengguna dalam info konteks, seperti yang Anda usulkan, dan menggunakannya dalam pemicu adalah contoh umum dari penggunaan info konteks dan sangat aman terkait dengan konkurensi, karena pada dasarnya tidak ada konkurensi untuk dibicarakan. Jika Anda berencana untuk mengatur info konteks dalam prosedur tersimpan dan kemudian mengandalkannya di pemicu yang berjalan karena penghapusan yang terjadi dalam prosedur tersebut, maka kumpulan Anda belum selesai, jadi, menurut artikel yang Anda tautkan, Anda mengambil info conetxt dari sys.dm_exec_requests DMV atau dari CONTEXT_INFO() fungsi. Itu belum akan didorong di sys.dm_exec_sessions , yang hanya dapat terjadi setelah Anda keluar dari prosedur tersimpan dan menyelesaikan panggilan lain dalam kumpulan T-SQL yang dikirim ke server ('permintaan').



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Tampilan Terikat Skema di SQL Server

  2. Menggunakan merge..output untuk mendapatkan pemetaan antara source.id dan target.id

  3. Tidak dapat menemukan kolom dbo atau fungsi yang ditentukan pengguna atau dbo agregat.Splitfn, atau namanya ambigu

  4. Alat Manajemen SQL Server 2017

  5. Prosesor Intel Xeon yang Dapat Diskalakan dan SQL Server 2017