Partager via


Connexion contextuelle

S'applique à : SQL Server

Le problème d'accès aux données interne est un scénario relativement courant. Autrement dit, vous souhaitez accéder au même serveur que celui sur lequel votre fonction ou procédure stockée CLR s'exécute. Une option consiste à créer une connexion à l’aide de System.Data.SqlClient.SqlConnection, spécifier une chaîne de connexion qui pointe vers le serveur local et ouvrir la connexion. Cela requiert la spécification d'informations d'identification pour se connecter. La connexion se trouve dans une session de base de données différente de la procédure stockée ou de la fonction, elle peut avoir différentes options SET , elle se trouve dans une transaction distincte, elle ne voit pas vos tables temporaires, et ainsi de suite. Si le code de votre procédure stockée managée ou de votre fonction exécute dans le processus SQL Server, la raison en est que quelqu'un s'est connecté à ce serveur et a exécuté une instruction SQL pour l'appeler. Vous souhaitez probablement que la procédure stockée ou la fonction s’exécute dans le contexte de cette connexion, ainsi que sa transaction, ses options SET , et ainsi de suite. Une telle connexion est appelée connexion du contexte, ou connexion contextuelle.

La connexion contextuelle permet d'exécuter des instructions Transact-SQL dans le même contexte que celui où votre code a été appelé en premier lieu. Pour obtenir la connexion contextuelle, vous devez utiliser le mot clé "context connection" de la chaîne de connexion, comme dans l'exemple ci-après :

[C#]

using(SqlConnection connection = new SqlConnection("context connection=true"))   
{  
    connection.Open();  
    // Use the connection  
}  

[Visual Basic]

Using connection as new SqlConnection("context connection=true")  
    connection.Open()  
    ' Use the connection  
End Using  
  

Dans cette section

Connexions régulières et contextuelles
Décrit les différences entre les connexions régulières et les connexions contextuelles.

Restrictions applicables aux connexions normales et contextuelles
Décrit les restrictions sur les connexions régulières et les connexions contextuelles.