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.

Namespace:   Microsoft.SqlServer.Server
Assembly:  System.Data (in System.Data.dll)

System.Object
  Microsoft.SqlServer.Server.SqlContext

public sealed class SqlContext

NameDescription
System_CAPS_pubpropertySystem_CAPS_staticIsAvailable

Specifies whether the calling code is running within SQL Server, and if the context connection can be accessed.

System_CAPS_pubpropertySystem_CAPS_staticPipe

Gets the pipe object that allows the caller to send result sets, messages, and the results of executing commands back to the client.

System_CAPS_pubpropertySystem_CAPS_staticTriggerContext

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.

System_CAPS_pubpropertySystem_CAPS_staticWindowsIdentity

The Microsoft Windows identity of the caller.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodToString()

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 static void StoredProcReturnResultSet()
{
	// Create the record and specify the metadata for the columns.
	SqlDataRecord record = 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.
	for (int i = 0; i < 10; i++)
	{
		// 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);
	}

	// Mark the end of the result-set.
	SqlContext.Pipe.SendResultsEnd();
}

.NET Framework
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.

Return to top
Show: