Freigeben über


SqlContext Klasse

Definition

Stellt eine Abstraktion des Aufruferkontextes dar, die Zugriff auf das SqlPipe-Objekt, das SqlTriggerContext-Objekt und das WindowsIdentity-Objekt bereitstellt. Diese Klasse kann nicht vererbt werden.

public ref class SqlContext sealed
public sealed class SqlContext
type SqlContext = class
Public NotInheritable Class SqlContext
Vererbung
SqlContext

Beispiele

Im folgenden Beispiel wird ein neues SqlDataRecord und dessen SqlMetaDataerstellt. Das Beispiel markiert dann den Anfang eines Resultsets mithilfe der SendResultsStart -Methode, sendet Datensätze mit Beispieldaten mithilfe der -Methode zurück an den SendResultsRow Client und markiert das Ende des Resultsets mit der SendResultsEnd -Methode.

[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();
}
<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

Hinweise

Das SqlContext -Objekt kann verwendet werden, um den Triggerkontext (für Code, der in einem Trigger ausgeführt wird) und das Pipeobjekt (sofern verfügbar, z. B. in gespeicherten Prozeduren) abzurufen. Es kann auch verwendet werden, um ein WindowsIdentity Objekt abzurufen, das die Microsoft Windows-Identität des aufrufenden Clients darstellt, wenn sich der Client mit integrierter Authentifizierung beim Server authentifiziert hat.

Eigenschaften

IsAvailable

Gibt an, ob der aufrufende Code in SQL Server ausgeführt wird und ob auf die Kontextverbindung zugegriffen werden kann.

Pipe

Ruft das Pipe-Objekt ab, das dem Aufrufer das Senden von Resultsets, Meldungen und Ergebnissen der Ausführung von Befehlen zurück an den Client ermöglicht.

TriggerContext

Ruft den Triggerkontext ab, mit dem dem Aufrufer Informationen über den Auslöser des Triggers und eine Zuordnung der aktualisierten Spalten bereitgestellt werden.

WindowsIdentity

Die Microsoft Windows-Identität des Aufrufers.

Gilt für: