Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какъв е обхватът на CONTEXT_INFO в SQL Server?

Информацията за контекста няма обхват (в смисъл на обхвата на езиковите променливи) и е обвързана с продължителността на сесията. Веднъж зададена, информацията за контекста остава на зададената стойност, докато връзката се затвори (сесията прекъсне) или докато не бъде зададена нова стойност. Тъй като изпълнението на сесия е винаги последователно, няма въпрос на паралелност.

АКО зададете информацията за контекста в процедура, всеки тригер, изпълнен впоследствие в тази сесия, ще види новозададената стойност на информация за контекста. Задаването на стойността на потребителския идентификатор в контекстната информация, както предлагате, и използването й в тригери е типичният пример за използване на контекстна информация и е напълно безопасно по отношение на паралелността, тъй като по същество няма паралелност, за която да говорим. Ако планирате да зададете информацията за контекста в съхранена процедура и след това да разчитате на нея в тригер, който се изпълнява поради изтривания, възникнали в споменатата процедура, тогава вашият пакет все още не е завършен, така че според статията, която сте свързали, извличате информацията за conetxt от sys.dm_exec_requests DMV или от CONTEXT_INFO() функция. Той все още няма да бъде изпратен в sys.dm_exec_sessions , което може да се случи само след като излезете от съхранената процедура и завършите всяко друго повикване в T-SQL пакета, изпратен до сървъра („заявката“).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Query помага за получаване на несъвпадащи записи от две таблици

  2. Най-бързият начин за намиране на остарели функции, които все още се използват в екземпляр на SQL сървър (пример за T-SQL)

  3. Използване на променлива в SQL израза LIKE

  4. Как да заредя XML файл в база данни с помощта на SSIS пакет?

  5. com.microsoft.sqlserver.jdbc.SQLServerException:TCP/IP връзката към хоста localhost, порт 1433 е неуспешна