SET CONTEXT_INFO (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance

Associates up to 128 bytes of binary information with the current session or connection.

Transact-SQL syntax conventions

Syntax

  
SET CONTEXT_INFO { binary_str | @binary_var }  

Note

To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.

Arguments

binary_str
Is a binary constant, or a constant that is implicitly convertible to binary, to associate with the current session or connection.

@ binary_var
Is a varbinary or binary variable holding a context value to associate with the current session or connection.

Remarks

The preferred way to retrieve the context information for the current session is to use the CONTEXT_INFO function. Session context information is also stored in the context_info columns in the following system views:

  • sys.dm_exec_requests

  • sys.dm_exec_sessions

  • sys.sysprocesses

SET CONTEXT_INFO cannot be specified in a user-defined function. You cannot supply a null value to SET CONTEXT_INFO because the views holding the values do not allow for null values.

SET CONTEXT_INFO does not accept expressions other than constants or variable names. To set the context information to the result of a function call, you must first include the result of the function call in a binary or varbinary variable.

When you issue SET CONTEXT_INFO in a stored procedure or trigger, unlike in other SET statements, the new value set for the context information persists after the stored procedure or trigger is completed.

Examples

A. Setting context information by using a constant

The following example demonstrates SET CONTEXT_INFO by setting the value and displaying the results. Note that querying sys.dm_exec_sessions requires SELECT and VIEW SERVER STATE permissions, whereas using the CONTEXT_INFO function does not.

SET CONTEXT_INFO 0x01010101;  
GO  
SELECT context_info   
FROM sys.dm_exec_sessions  
WHERE session_id = @@SPID;  
GO  

B. Setting context information by using a function

The following example demonstrates using the output of a function to set the context value, where the value from the function must be first placed in a binary variable.

DECLARE @BinVar varbinary(128);  
SET @BinVar = CAST(REPLICATE( 0x20, 128 ) AS varbinary(128) );  
SET CONTEXT_INFO @BinVar;  
  
SELECT CONTEXT_INFO() AS MyContextInfo;  
GO  

See Also

Row Level Security SET Statements (Transact-SQL)
CONTEXT_INFO (Transact-SQL)
SESSION_CONTEXT (Transact-SQL)
sys.dm_exec_requests (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)
sp_set_session_context (Transact-SQL)