SqlContext Class
Represents an abstraction of the caller's context, which provides access to the SqlPipe, SqlTriggerContext, and WindowsIdentity objects. This class cannot be inherited.
Assembly: System.Data (in System.Data.dll)
| Name | Description | |
|---|---|---|
![]() ![]() | IsAvailable | Specifies whether the calling code is running within SQL Server, and if the context connection can be accessed. |
![]() ![]() | Pipe | Gets the pipe object that allows the caller to send result sets, messages, and the results of executing commands back to the client. |
![]() ![]() | TriggerContext | Gets the trigger context used to provide the caller with information about what caused the trigger to fire, and a map of the columns that were updated. |
![]() ![]() | WindowsIdentity | The Microsoft Windows identity of the caller. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
The SqlContext object can be used to obtain the trigger context (for code executing in a trigger) and the pipe object (when available, such as in stored procedures). It can also be used to obtain a WindowsIdentity object that represents the Microsoft Windows identity of the calling client, if the client authenticated with the server using integrated authentication.
The following example creates a new SqlDataRecord and its SqlMetaData. The example then marks the beginning of a result set using the SendResultsStart method, sends records with example data back to the client using the M:Microsoft.SqlServer.Server.SqlPipe.SendResultsRow method, and marks the end of the result set with the SendResultsEnd method.
<Microsoft.SqlServer.Server.SqlProcedure()> _ Public Shared Sub StoredProcReturnResultSet() ' Create the record and specify the metadata for the columns. Dim record As New SqlDataRecord( _ New SqlMetaData("col1", SqlDbType.NVarChar, 100), _ New SqlMetaData("col2", SqlDbType.Int)) ' Mark the begining of the result-set. SqlContext.Pipe.SendResultsStart(record) ' Send 10 rows back to the client. Dim i As Integer For i = 0 To 9 ' Set values for each column in the row. record.SetString(0, "row " & i.ToString()) record.SetInt32(1, i) ' Send the row back to the client. SqlContext.Pipe.SendResultsRow(record) Next ' Mark the end of the result-set. SqlContext.Pipe.SendResultsEnd() End Sub
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


