Kontextverbindung
Gilt für:SQL Server
Der interne Datenzugriff ist ein verbreitetes Problem. Es tritt auf, wenn Sie auf denselben Server zugreifen möchten, auf dem auch die CLR-gespeicherte Prozedur (Common Language Runtime, CLR) oder -Funktion ausgeführt wird. Eine Option besteht darin, eine Verbindung mit System.Data.SqlClient.SqlConnection
zu erstellen, eine Verbindungszeichenfolge anzugeben, die auf den lokalen Server verweist, und die Verbindung öffnen. Für diese Methode müssen Anmeldeinformationen für die Anmeldung angegeben werden. Die Verbindung befindet sich in einer anderen Datenbanksitzung als die gespeicherte Prozedur oder Funktion, sie verfügt möglicherweise über unterschiedliche SET
Optionen, es befindet sich in einer separaten Transaktion, wird Ihre temporären Tabellen usw. nicht angezeigt.
Wenn die verwaltete gespeicherte Prozedur oder der Funktionscode im SQL Server-Prozess ausgeführt wird, liegt dies daran, dass jemand mit diesem Server verbunden und eine SQL-Anweisung ausgeführt hat, um sie aufzurufen. Wahrscheinlich möchten Sie, dass die gespeicherte Prozedur oder Funktion im Kontext dieser Verbindung zusammen mit der Transaktion, SET
Optionen usw. ausgeführt werden soll. Dies wird als Kontextverbindung bezeichnet.
Die Kontextverbindung ermöglicht, Transact-SQL-Anweisungen im selben Kontext auszuführen wie den Code, der anfänglich aufgerufen wurde. Um die Kontextverbindung abzurufen, müssen Sie wie im folgenden Beispiel das Schlüsselwort für die Verbindungszeichenfolge "context connection" verwenden.
using(SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
// Use the connection
}
In diesem Abschnitt
Artikel | Beschreibung |
---|---|
Kontextverbindungen im Vergleich zu regulären Verbindungen | Beschreibt die Unterschiede zwischen regulären Verbindungen und Kontextverbindungen. |
Einschränkungen für Kontextverbindungen und reguläre Verbindungen | Beschreibt die Einschränkungen hinsichtlich regulärer Verbindungen und Kontextverbindungen. |